@vkontakte/vkui 7.1.3 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1131) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +2 -2
  2. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  3. package/dist/components/Accordion/Accordion.js.map +1 -1
  4. package/dist/components/ActionSheet/ActionSheet.d.ts +1 -1
  5. package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  6. package/dist/components/ActionSheet/ActionSheet.js +1 -1
  7. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  8. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts.map +1 -1
  9. package/dist/components/ActionSheet/ActionSheetDropdownMenu.d.ts +1 -1
  10. package/dist/components/ActionSheet/ActionSheetDropdownMenu.d.ts.map +1 -1
  11. package/dist/components/ActionSheet/ActionSheetDropdownMenu.js +10 -4
  12. package/dist/components/ActionSheet/ActionSheetDropdownMenu.js.map +1 -1
  13. package/dist/components/ActionSheet/ActionSheetDropdownSheet.d.ts +1 -1
  14. package/dist/components/ActionSheet/ActionSheetDropdownSheet.d.ts.map +1 -1
  15. package/dist/components/ActionSheet/ActionSheetDropdownSheet.js +10 -4
  16. package/dist/components/ActionSheet/ActionSheetDropdownSheet.js.map +1 -1
  17. package/dist/components/ActionSheet/types.d.ts +4 -0
  18. package/dist/components/ActionSheet/types.d.ts.map +1 -1
  19. package/dist/components/ActionSheet/types.js.map +1 -1
  20. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
  21. package/dist/components/ActionSheetItem/helpers.d.ts.map +1 -1
  22. package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.d.ts.map +1 -1
  23. package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts.map +1 -1
  24. package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts.map +1 -1
  25. package/dist/components/Alert/Alert.d.ts +14 -2
  26. package/dist/components/Alert/Alert.d.ts.map +1 -1
  27. package/dist/components/Alert/Alert.js +15 -104
  28. package/dist/components/Alert/Alert.js.map +1 -1
  29. package/dist/components/Alert/AlertAction.d.ts.map +1 -1
  30. package/dist/components/Alert/AlertActions.d.ts.map +1 -1
  31. package/dist/components/Alert/AlertBase.d.ts +7 -0
  32. package/dist/components/Alert/AlertBase.d.ts.map +1 -0
  33. package/dist/components/Alert/AlertBase.js +131 -0
  34. package/dist/components/Alert/AlertBase.js.map +1 -0
  35. package/dist/components/Alert/AlertTypography.d.ts +2 -1
  36. package/dist/components/Alert/AlertTypography.d.ts.map +1 -1
  37. package/dist/components/Alert/AlertTypography.js.map +1 -1
  38. package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
  39. package/dist/components/AppRoot/AppRootPortal.d.ts.map +1 -1
  40. package/dist/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js +1 -1
  41. package/dist/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js.map +1 -1
  42. package/dist/components/AppRoot/ScrollContext.d.ts +1 -0
  43. package/dist/components/AppRoot/ScrollContext.d.ts.map +1 -1
  44. package/dist/components/AppRoot/ScrollContext.js +127 -39
  45. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  46. package/dist/components/AppRoot/helpers.d.ts.map +1 -1
  47. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts.map +1 -1
  48. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +4 -1
  49. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  50. package/dist/components/Avatar/AvatarBadge/icons.d.ts.map +1 -1
  51. package/dist/components/Badge/Badge.d.ts.map +1 -1
  52. package/dist/components/Banner/Banner.d.ts.map +1 -1
  53. package/dist/components/Button/Button.d.ts.map +1 -1
  54. package/dist/components/ButtonGroup/ButtonGroup.d.ts +4 -1
  55. package/dist/components/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  56. package/dist/components/ButtonGroup/ButtonGroup.js +1 -0
  57. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  58. package/dist/components/Calendar/Calendar.d.ts +7 -2
  59. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  60. package/dist/components/Calendar/Calendar.js +98 -92
  61. package/dist/components/Calendar/Calendar.js.map +1 -1
  62. package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  63. package/dist/components/CalendarDay/CalendarDay.js +1 -3
  64. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  65. package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  66. package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  67. package/dist/components/CalendarHeader/CalendarHeader.js +1 -3
  68. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  69. package/dist/components/CalendarRange/CalendarRange.d.ts +3 -2
  70. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  71. package/dist/components/CalendarRange/CalendarRange.js +102 -108
  72. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  73. package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  74. package/dist/components/Card/Card.d.ts.map +1 -1
  75. package/dist/components/CardGrid/CardGrid.d.ts.map +1 -1
  76. package/dist/components/CardScroll/CardScroll.d.ts +5 -1
  77. package/dist/components/CardScroll/CardScroll.d.ts.map +1 -1
  78. package/dist/components/CardScroll/CardScroll.js +32 -29
  79. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  80. package/dist/components/CarouselBase/CarouselBase.d.ts.map +1 -1
  81. package/dist/components/CarouselBase/CarouselBase.js +71 -46
  82. package/dist/components/CarouselBase/CarouselBase.js.map +1 -1
  83. package/dist/components/CarouselBase/ScrollArrows.d.ts.map +1 -1
  84. package/dist/components/CarouselBase/helpers.d.ts +20 -5
  85. package/dist/components/CarouselBase/helpers.d.ts.map +1 -1
  86. package/dist/components/CarouselBase/helpers.js +70 -44
  87. package/dist/components/CarouselBase/helpers.js.map +1 -1
  88. package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts.map +1 -1
  89. package/dist/components/Cell/CellDragger/CellDragger.d.ts.map +1 -1
  90. package/dist/components/CellButton/CellButton.d.ts.map +1 -1
  91. package/dist/components/CellButtonGroup/CellButtonGroup.d.ts +300 -0
  92. package/dist/components/CellButtonGroup/CellButtonGroup.d.ts.map +1 -0
  93. package/dist/components/CellButtonGroup/CellButtonGroup.js +20 -0
  94. package/dist/components/CellButtonGroup/CellButtonGroup.js.map +1 -0
  95. package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.d.ts +8 -0
  96. package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.d.ts.map +1 -0
  97. package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js +20 -0
  98. package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js.map +1 -0
  99. package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
  100. package/dist/components/ChipsInput/useChipsInput.d.ts.map +1 -1
  101. package/dist/components/ChipsInputBase/Chip/Chip.d.ts.map +1 -1
  102. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts.map +1 -1
  103. package/dist/components/ChipsInputBase/helpers.d.ts.map +1 -1
  104. package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  105. package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  106. package/dist/components/ChipsSelect/ChipsSelect.js +3 -1
  107. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  108. package/dist/components/ChipsSelect/constants.d.ts.map +1 -1
  109. package/dist/components/ChipsSelect/useChipsSelect.d.ts +3 -2
  110. package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  111. package/dist/components/ChipsSelect/useChipsSelect.js +9 -3
  112. package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
  113. package/dist/components/Clickable/Clickable.d.ts +1 -1
  114. package/dist/components/Clickable/Clickable.d.ts.map +1 -1
  115. package/dist/components/Clickable/Clickable.js +28 -28
  116. package/dist/components/Clickable/Clickable.js.map +1 -1
  117. package/dist/components/Clickable/RealClickable.d.ts.map +1 -1
  118. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.d.ts.map +1 -1
  119. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js +1 -1
  120. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
  121. package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
  122. package/dist/components/ConfigProvider/ConfigProvider.js +5 -2
  123. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  124. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +11 -1
  125. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts.map +1 -1
  126. package/dist/components/ConfigProvider/ConfigProviderContext.js +12 -7
  127. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  128. package/dist/components/ContentCard/ContentCard.d.ts +6 -1
  129. package/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
  130. package/dist/components/ContentCard/ContentCard.js +6 -4
  131. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  132. package/dist/components/Counter/Counter.d.ts.map +1 -1
  133. package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  134. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  135. package/dist/components/CustomSelect/CustomSelect.js +105 -69
  136. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  137. package/dist/components/CustomSelect/CustomSelectClearButton.d.ts.map +1 -1
  138. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts.map +1 -1
  139. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  140. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -1
  141. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  142. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts.map +1 -1
  143. package/dist/components/DateInput/DateInput.d.ts +11 -2
  144. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  145. package/dist/components/DateInput/DateInput.js +108 -82
  146. package/dist/components/DateInput/DateInput.js.map +1 -1
  147. package/dist/components/DateInput/hooks.d.ts +15 -0
  148. package/dist/components/DateInput/hooks.d.ts.map +1 -0
  149. package/dist/components/DateInput/hooks.js +54 -0
  150. package/dist/components/DateInput/hooks.js.map +1 -0
  151. package/dist/components/DateRangeInput/DateRangeInput.d.ts +2 -2
  152. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  153. package/dist/components/DateRangeInput/DateRangeInput.js +100 -82
  154. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  155. package/dist/components/DirectionProvider/DirectionProvider.d.ts +13 -0
  156. package/dist/components/DirectionProvider/DirectionProvider.d.ts.map +1 -0
  157. package/dist/components/DirectionProvider/DirectionProvider.js +15 -0
  158. package/dist/components/DirectionProvider/DirectionProvider.js.map +1 -0
  159. package/dist/components/Div/Div.d.ts.map +1 -1
  160. package/dist/components/DropdownIcon/DropdownIcon.d.ts.map +1 -1
  161. package/dist/components/Epic/Epic.d.ts.map +1 -1
  162. package/dist/components/Epic/ScrollSaver.d.ts.map +1 -1
  163. package/dist/components/File/File.d.ts.map +1 -1
  164. package/dist/components/FixedLayout/FixedLayout.d.ts.map +1 -1
  165. package/dist/components/Flex/Flex.d.ts.map +1 -1
  166. package/dist/components/Flex/Flex.js +3 -5
  167. package/dist/components/Flex/Flex.js.map +1 -1
  168. package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  169. package/dist/components/FloatingArrow/DefaultIcon.d.ts.map +1 -1
  170. package/dist/components/FloatingArrow/FloatingArrow.d.ts.map +1 -1
  171. package/dist/components/FocusTrap/FocusTrap.d.ts.map +1 -1
  172. package/dist/components/Footer/Footer.d.ts.map +1 -1
  173. package/dist/components/FormField/FormField.d.ts.map +1 -1
  174. package/dist/components/FormFieldClearButton/FormFieldClearButton.d.ts.map +1 -1
  175. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
  176. package/dist/components/FormStatus/FormStatus.d.ts.map +1 -1
  177. package/dist/components/Gallery/Gallery.d.ts.map +1 -1
  178. package/dist/components/Gradient/Gradient.d.ts.map +1 -1
  179. package/dist/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.d.ts.map +1 -1
  180. package/dist/components/Header/Header.d.ts.map +1 -1
  181. package/dist/components/HorizontalCell/HorizontalCell.d.ts.map +1 -1
  182. package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts.map +1 -1
  183. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +13 -1
  184. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  185. package/dist/components/HorizontalScroll/HorizontalScroll.js +32 -24
  186. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  187. package/dist/components/IconButton/IconButton.d.ts.map +1 -1
  188. package/dist/components/ImageBase/ImageBase.d.ts +5 -0
  189. package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
  190. package/dist/components/ImageBase/ImageBase.js +6 -4
  191. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  192. package/dist/components/ImageBase/ImageBaseFloatElement/helpers.d.ts.map +1 -1
  193. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.d.ts.map +1 -1
  194. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +3 -4
  195. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  196. package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts +1 -0
  197. package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts.map +1 -1
  198. package/dist/components/ImageBase/ImageBaseOverlay/hooks.js +25 -0
  199. package/dist/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
  200. package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts +4 -0
  201. package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts.map +1 -1
  202. package/dist/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  203. package/dist/components/InfoRow/InfoRow.d.ts.map +1 -1
  204. package/dist/components/Input/Input.d.ts.map +1 -1
  205. package/dist/components/InputLike/InputLikeDivider.d.ts.map +1 -1
  206. package/dist/components/Link/Link.d.ts.map +1 -1
  207. package/dist/components/List/List.d.ts.map +1 -1
  208. package/dist/components/Mark/Mark.d.ts.map +1 -1
  209. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts.map +1 -1
  210. package/dist/components/ModalCard/ModalCard.d.ts.map +1 -1
  211. package/dist/components/ModalCard/ModalCard.js +2 -1
  212. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  213. package/dist/components/ModalCard/ModalCardInternal.d.ts +1 -1
  214. package/dist/components/ModalCard/ModalCardInternal.d.ts.map +1 -1
  215. package/dist/components/ModalCard/ModalCardInternal.js +4 -2
  216. package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
  217. package/dist/components/ModalCard/types.d.ts +1 -1
  218. package/dist/components/ModalCard/types.d.ts.map +1 -1
  219. package/dist/components/ModalCard/types.js.map +1 -1
  220. package/dist/components/ModalCardBase/ModalCardBase.d.ts +9 -1
  221. package/dist/components/ModalCardBase/ModalCardBase.d.ts.map +1 -1
  222. package/dist/components/ModalCardBase/ModalCardBase.js +33 -8
  223. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  224. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +5 -3
  225. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts.map +1 -1
  226. package/dist/components/ModalDismissButton/ModalDismissButton.js +7 -7
  227. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  228. package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -1
  229. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts +17 -0
  230. package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts.map +1 -0
  231. package/dist/components/ModalOutsideButton/ModalOutsideButton.js +30 -0
  232. package/dist/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -0
  233. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.d.ts +6 -0
  234. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.d.ts.map +1 -0
  235. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.js +22 -0
  236. package/dist/components/ModalOutsideButtons/ModalOutsideButtons.js.map +1 -0
  237. package/dist/components/ModalOverlay/ModalOverlay.d.ts.map +1 -1
  238. package/dist/components/ModalPage/ModalPage.d.ts.map +1 -1
  239. package/dist/components/ModalPage/ModalPageBase.d.ts +8 -0
  240. package/dist/components/ModalPage/ModalPageBase.d.ts.map +1 -0
  241. package/dist/components/ModalPage/ModalPageBase.js +66 -0
  242. package/dist/components/ModalPage/ModalPageBase.js.map +1 -0
  243. package/dist/components/ModalPage/ModalPageInternal.d.ts +1 -1
  244. package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
  245. package/dist/components/ModalPage/ModalPageInternal.js +24 -32
  246. package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
  247. package/dist/components/ModalPage/types.d.ts +12 -1
  248. package/dist/components/ModalPage/types.d.ts.map +1 -1
  249. package/dist/components/ModalPage/types.js.map +1 -1
  250. package/dist/components/ModalPageContent/ModalPageContent.d.ts.map +1 -1
  251. package/dist/components/ModalPageFooter/ModalPageFooter.d.ts.map +1 -1
  252. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  253. package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  254. package/dist/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.d.ts.map +1 -1
  255. package/dist/components/ModalRoot/useModalManager.d.ts.map +1 -1
  256. package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
  257. package/dist/components/NavTransitionContext/NavTransitionContext.d.ts.map +1 -1
  258. package/dist/components/NavTransitionDirectionContext/NavTransitionDirectionContext.d.ts.map +1 -1
  259. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +2 -2
  260. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  261. package/dist/components/OnboardingTooltip/OnboardingTooltip.js +22 -8
  262. package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  263. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
  264. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js +12 -3
  265. package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  266. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.d.ts +7 -0
  267. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.d.ts.map +1 -0
  268. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.js +9 -0
  269. package/dist/components/OnboardingTooltip/OnboardingTooltipContext.js.map +1 -0
  270. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  271. package/dist/components/Pagination/Pagination.js +5 -2
  272. package/dist/components/Pagination/Pagination.js.map +1 -1
  273. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts.map +1 -1
  274. package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts.map +1 -1
  275. package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts.map +1 -1
  276. package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts.map +1 -1
  277. package/dist/components/Panel/Panel.d.ts.map +1 -1
  278. package/dist/components/PanelHeader/PanelHeader.d.ts.map +1 -1
  279. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts.map +1 -1
  280. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +3 -1
  281. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  282. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
  283. package/dist/components/PanelHeaderClose/PanelHeaderClose.d.ts.map +1 -1
  284. package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts.map +1 -1
  285. package/dist/components/PanelHeaderContext/PanelHeaderContext.d.ts.map +1 -1
  286. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts.map +1 -1
  287. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts.map +1 -1
  288. package/dist/components/Placeholder/Placeholder.d.ts.map +1 -1
  289. package/dist/components/PlatformProvider/PlatformProvider.js +1 -1
  290. package/dist/components/PlatformProvider/PlatformProvider.js.map +1 -1
  291. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +15 -2
  292. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts.map +1 -1
  293. package/dist/components/PopoutWrapper/PopoutWrapper.js +10 -2
  294. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  295. package/dist/components/Popover/Popover.d.ts +1 -1
  296. package/dist/components/Popover/Popover.d.ts.map +1 -1
  297. package/dist/components/Popover/Popover.js +4 -4
  298. package/dist/components/Popover/Popover.js.map +1 -1
  299. package/dist/components/Popover/usePopover.d.ts +1 -1
  300. package/dist/components/Popover/usePopover.d.ts.map +1 -1
  301. package/dist/components/Popover/usePopover.js +69 -44
  302. package/dist/components/Popover/usePopover.js.map +1 -1
  303. package/dist/components/Popper/Popper.d.ts +2 -2
  304. package/dist/components/Popper/Popper.d.ts.map +1 -1
  305. package/dist/components/Popper/Popper.js +18 -5
  306. package/dist/components/Popper/Popper.js.map +1 -1
  307. package/dist/components/Progress/Progress.d.ts +7 -3
  308. package/dist/components/Progress/Progress.d.ts.map +1 -1
  309. package/dist/components/Progress/Progress.js +30 -11
  310. package/dist/components/Progress/Progress.js.map +1 -1
  311. package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  312. package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts.map +1 -1
  313. package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  314. package/dist/components/Removable/Removable.d.ts.map +1 -1
  315. package/dist/components/Removable/Removable.js +8 -4
  316. package/dist/components/Removable/Removable.js.map +1 -1
  317. package/dist/components/RichCell/RichCellIcon/RichCellIcon.d.ts.map +1 -1
  318. package/dist/components/Root/Root.d.ts.map +1 -1
  319. package/dist/components/RootComponent/RootComponent.d.ts.map +1 -1
  320. package/dist/components/ScreenSpinner/Icon48CancelCircle.d.ts.map +1 -1
  321. package/dist/components/ScreenSpinner/Icon48DoneOutline.d.ts.map +1 -1
  322. package/dist/components/ScreenSpinner/ScreenSpinner.js +1 -0
  323. package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  324. package/dist/components/ScrollArrow/ScrollArrow.d.ts.map +1 -1
  325. package/dist/components/ScrollArrow/ScrollArrow.js +4 -1
  326. package/dist/components/ScrollArrow/ScrollArrow.js.map +1 -1
  327. package/dist/components/Search/Search.d.ts +9 -1
  328. package/dist/components/Search/Search.d.ts.map +1 -1
  329. package/dist/components/Search/Search.js +9 -2
  330. package/dist/components/Search/Search.js.map +1 -1
  331. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  332. package/dist/components/SegmentedControl/SegmentedControl.js +10 -7
  333. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  334. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  335. package/dist/components/Select/Select.d.ts.map +1 -1
  336. package/dist/components/SelectMimicry/SelectMimicry.d.ts.map +1 -1
  337. package/dist/components/SelectTypography/SelectTypography.d.ts.map +1 -1
  338. package/dist/components/Separator/Separator.d.ts.map +1 -1
  339. package/dist/components/SimpleCell/Chevron/Chevron.d.ts.map +1 -1
  340. package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  341. package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
  342. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  343. package/dist/components/Slider/Slider.d.ts +1 -1
  344. package/dist/components/Slider/Slider.d.ts.map +1 -1
  345. package/dist/components/Slider/Slider.js +22 -18
  346. package/dist/components/Slider/Slider.js.map +1 -1
  347. package/dist/components/Slider/SliderThumb/SliderThumb.d.ts.map +1 -1
  348. package/dist/components/Slider/SliderThumb/SliderThumb.js +5 -1
  349. package/dist/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  350. package/dist/components/Slider/helpers.d.ts.map +1 -1
  351. package/dist/components/Snackbar/Snackbar.d.ts.map +1 -1
  352. package/dist/components/Snackbar/Snackbar.js +6 -3
  353. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  354. package/dist/components/Snackbar/utils.d.ts +3 -2
  355. package/dist/components/Snackbar/utils.d.ts.map +1 -1
  356. package/dist/components/Snackbar/utils.js +11 -8
  357. package/dist/components/Snackbar/utils.js.map +1 -1
  358. package/dist/components/Spacing/Spacing.d.ts.map +1 -1
  359. package/dist/components/SplitCol/SplitCol.d.ts.map +1 -1
  360. package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
  361. package/dist/components/SubnavigationBar/SubnavigationBar.d.ts.map +1 -1
  362. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts.map +1 -1
  363. package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -1
  364. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  365. package/dist/components/Switch/Switch.d.ts.map +1 -1
  366. package/dist/components/Switch/Switch.js +4 -1
  367. package/dist/components/Switch/Switch.js.map +1 -1
  368. package/dist/components/Tabbar/Tabbar.d.ts.map +1 -1
  369. package/dist/components/TabbarItem/TabbarItem.d.ts.map +1 -1
  370. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  371. package/dist/components/Tabs/Tabs.js +3 -1
  372. package/dist/components/Tabs/Tabs.js.map +1 -1
  373. package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
  374. package/dist/components/Tappable/Ripple.d.ts.map +1 -1
  375. package/dist/components/Tappable/Tappable.d.ts.map +1 -1
  376. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  377. package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
  378. package/dist/components/Tooltip/Tooltip.d.ts +2 -2
  379. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  380. package/dist/components/Tooltip/Tooltip.js +8 -101
  381. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  382. package/dist/components/Tooltip/useTooltip.d.ts +14 -0
  383. package/dist/components/Tooltip/useTooltip.d.ts.map +1 -0
  384. package/dist/components/Tooltip/useTooltip.js +126 -0
  385. package/dist/components/Tooltip/useTooltip.js.map +1 -0
  386. package/dist/components/TooltipBase/TooltipBase.d.ts.map +1 -1
  387. package/dist/components/Touch/Touch.d.ts.map +1 -1
  388. package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
  389. package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
  390. package/dist/components/Typography/EllipsisText/EllipsisText.d.ts.map +1 -1
  391. package/dist/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  392. package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
  393. package/dist/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  394. package/dist/components/Typography/Subhead/Subhead.d.ts.map +1 -1
  395. package/dist/components/Typography/Text/Text.d.ts.map +1 -1
  396. package/dist/components/Typography/Title/Title.d.ts.map +1 -1
  397. package/dist/components/Typography/Typography.d.ts.map +1 -1
  398. package/dist/components/UnstyledTextField/UnstyledTextField.d.ts.map +1 -1
  399. package/dist/components/UsersStack/UsersStack.d.ts +1 -1
  400. package/dist/components/UsersStack/UsersStack.d.ts.map +1 -1
  401. package/dist/components/UsersStack/UsersStack.js +5 -9
  402. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  403. package/dist/components/View/View.d.ts.map +1 -1
  404. package/dist/components/View/utils.d.ts.map +1 -1
  405. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
  406. package/dist/components/WriteBar/WriteBar.d.ts.map +1 -1
  407. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts.map +1 -1
  408. package/dist/components.css +1 -1
  409. package/dist/components.css.map +1 -1
  410. package/dist/context/CalendarDirectionContext.d.ts +1 -1
  411. package/dist/context/CalendarDirectionContext.d.ts.map +1 -1
  412. package/dist/context/CalendarDirectionContext.js.map +1 -1
  413. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  414. package/dist/cssm/components/Accordion/Accordion.module.css +6 -6
  415. package/dist/cssm/components/ActionSheet/ActionSheet.js +1 -1
  416. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  417. package/dist/cssm/components/ActionSheet/ActionSheet.module.css +9 -9
  418. package/dist/cssm/components/ActionSheet/ActionSheetDropdownMenu.js +7 -3
  419. package/dist/cssm/components/ActionSheet/ActionSheetDropdownMenu.js.map +1 -1
  420. package/dist/cssm/components/ActionSheet/ActionSheetDropdownSheet.js +7 -3
  421. package/dist/cssm/components/ActionSheet/ActionSheetDropdownSheet.js.map +1 -1
  422. package/dist/cssm/components/ActionSheet/types.js.map +1 -1
  423. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +18 -18
  424. package/dist/cssm/components/Alert/Alert.js +12 -92
  425. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  426. package/dist/cssm/components/Alert/Alert.module.css +27 -29
  427. package/dist/cssm/components/Alert/AlertBase.js +111 -0
  428. package/dist/cssm/components/Alert/AlertBase.js.map +1 -0
  429. package/dist/cssm/components/Alert/AlertTypography.js.map +1 -1
  430. package/dist/cssm/components/AppRoot/AppRoot.module.css +2 -2
  431. package/dist/cssm/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js +1 -1
  432. package/dist/cssm/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js.map +1 -1
  433. package/dist/cssm/components/AppRoot/ScrollContext.js +129 -37
  434. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  435. package/dist/cssm/components/AspectRatio/AspectRatio.module.css +2 -2
  436. package/dist/cssm/components/Avatar/Avatar.module.css +1 -1
  437. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.module.css +8 -3
  438. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +4 -1
  439. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  440. package/dist/cssm/components/Banner/Banner.module.css +19 -19
  441. package/dist/cssm/components/Button/Button.module.css +11 -11
  442. package/dist/cssm/components/ButtonGroup/ButtonGroup.js +1 -0
  443. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  444. package/dist/cssm/components/Calendar/Calendar.js +96 -92
  445. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  446. package/dist/cssm/components/Calendar/Calendar.module.css +8 -8
  447. package/dist/cssm/components/CalendarDay/CalendarDay.js +1 -3
  448. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  449. package/dist/cssm/components/CalendarDay/CalendarDay.module.css +11 -11
  450. package/dist/cssm/components/CalendarDays/CalendarDays.module.css +7 -7
  451. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +1 -3
  452. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  453. package/dist/cssm/components/CalendarHeader/CalendarHeader.module.css +4 -4
  454. package/dist/cssm/components/CalendarRange/CalendarRange.js +103 -110
  455. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  456. package/dist/cssm/components/CalendarRange/CalendarRange.module.css +5 -5
  457. package/dist/cssm/components/CalendarTime/CalendarTime.module.css +1 -1
  458. package/dist/cssm/components/Card/Card.module.css +7 -7
  459. package/dist/cssm/components/CardGrid/CardGrid.module.css +3 -3
  460. package/dist/cssm/components/CardScroll/CardScroll.js +30 -28
  461. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  462. package/dist/cssm/components/CardScroll/CardScroll.module.css +16 -16
  463. package/dist/cssm/components/CarouselBase/CarouselBase.js +71 -44
  464. package/dist/cssm/components/CarouselBase/CarouselBase.js.map +1 -1
  465. package/dist/cssm/components/CarouselBase/CarouselBase.module.css +11 -11
  466. package/dist/cssm/components/CarouselBase/helpers.js +70 -44
  467. package/dist/cssm/components/CarouselBase/helpers.js.map +1 -1
  468. package/dist/cssm/components/Cell/Cell.module.css +18 -2
  469. package/dist/cssm/components/Cell/CellDragger/CellDragger.module.css +2 -2
  470. package/dist/cssm/components/CellButton/CellButton.module.css +8 -8
  471. package/dist/cssm/components/CellButtonGroup/CellButtonGroup.js +20 -0
  472. package/dist/cssm/components/CellButtonGroup/CellButtonGroup.js.map +1 -0
  473. package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js +15 -0
  474. package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js.map +1 -0
  475. package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.module.css +5 -0
  476. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +2 -2
  477. package/dist/cssm/components/ChipsInputBase/Chip/Chip.module.css +16 -16
  478. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +12 -12
  479. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -1
  480. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  481. package/dist/cssm/components/ChipsSelect/ChipsSelect.module.css +1 -1
  482. package/dist/cssm/components/ChipsSelect/useChipsSelect.js +9 -3
  483. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
  484. package/dist/cssm/components/Clickable/Clickable.js +29 -22
  485. package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
  486. package/dist/cssm/components/Clickable/Clickable.module.css +1 -1
  487. package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js +1 -1
  488. package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
  489. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +5 -2
  490. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  491. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +12 -7
  492. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  493. package/dist/cssm/components/ContentBadge/ContentBadge.module.css +7 -7
  494. package/dist/cssm/components/ContentCard/ContentCard.js +5 -4
  495. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  496. package/dist/cssm/components/ContentCard/ContentCard.module.css +6 -6
  497. package/dist/cssm/components/Counter/Counter.module.css +4 -4
  498. package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +2 -2
  499. package/dist/cssm/components/CustomSelect/CustomSelect.js +105 -69
  500. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  501. package/dist/cssm/components/CustomSelect/CustomSelect.module.css +2 -2
  502. package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +13 -13
  503. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -0
  504. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  505. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.module.css +2 -2
  506. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +9 -9
  507. package/dist/cssm/components/DateInput/DateInput.js +104 -81
  508. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  509. package/dist/cssm/components/DateInput/DateInput.module.css +40 -6
  510. package/dist/cssm/components/DateInput/hooks.js +54 -0
  511. package/dist/cssm/components/DateInput/hooks.js.map +1 -0
  512. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +99 -82
  513. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  514. package/dist/cssm/components/DateRangeInput/DateRangeInput.module.css +3 -3
  515. package/dist/cssm/components/DirectionProvider/DirectionProvider.js +15 -0
  516. package/dist/cssm/components/DirectionProvider/DirectionProvider.js.map +1 -0
  517. package/dist/cssm/components/DropZone/DropZone.module.css +2 -2
  518. package/dist/cssm/components/FixedLayout/FixedLayout.module.css +3 -3
  519. package/dist/cssm/components/Flex/Flex.js +3 -5
  520. package/dist/cssm/components/Flex/Flex.js.map +1 -1
  521. package/dist/cssm/components/Flex/Flex.module.css +40 -23
  522. package/dist/cssm/components/FloatingArrow/FloatingArrow.module.css +1 -1
  523. package/dist/cssm/components/Footer/Footer.module.css +1 -1
  524. package/dist/cssm/components/FormField/FormField.module.css +24 -24
  525. package/dist/cssm/components/FormItem/FormItem.module.css +10 -10
  526. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +5 -5
  527. package/dist/cssm/components/GridAvatar/GridAvatar.module.css +2 -2
  528. package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +2 -2
  529. package/dist/cssm/components/Group/Group.module.css +16 -16
  530. package/dist/cssm/components/Header/Header.module.css +6 -6
  531. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +3 -3
  532. package/dist/cssm/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.module.css +2 -2
  533. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +28 -23
  534. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  535. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.module.css +10 -4
  536. package/dist/cssm/components/IconButton/IconButton.module.css +11 -11
  537. package/dist/cssm/components/ImageBase/ImageBase.js +5 -4
  538. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  539. package/dist/cssm/components/ImageBase/ImageBase.module.css +15 -6
  540. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +5 -5
  541. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +8 -8
  542. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +3 -4
  543. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  544. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +2 -2
  545. package/dist/cssm/components/ImageBase/ImageBaseOverlay/hooks.js +25 -0
  546. package/dist/cssm/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
  547. package/dist/cssm/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
  548. package/dist/cssm/components/InfoRow/InfoRow.module.css +3 -3
  549. package/dist/cssm/components/Input/Input.module.css +5 -5
  550. package/dist/cssm/components/InputLike/InputLike.module.css +3 -3
  551. package/dist/cssm/components/Link/Link.module.css +6 -6
  552. package/dist/cssm/components/Mark/Mark.module.css +2 -2
  553. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +5 -5
  554. package/dist/cssm/components/ModalCard/ModalCard.js +1 -0
  555. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  556. package/dist/cssm/components/ModalCard/ModalCard.module.css +4 -4
  557. package/dist/cssm/components/ModalCard/ModalCardInternal.js +3 -2
  558. package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
  559. package/dist/cssm/components/ModalCard/types.js.map +1 -1
  560. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +30 -7
  561. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  562. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +7 -7
  563. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +5 -6
  564. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  565. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.module.css +0 -29
  566. package/dist/cssm/components/ModalOutlet/ModalOutlet.module.css +1 -1
  567. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js +24 -0
  568. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -0
  569. package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.module.css +31 -0
  570. package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.js +16 -0
  571. package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.js.map +1 -0
  572. package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.module.css +6 -0
  573. package/dist/cssm/components/ModalOverlay/ModalOverlay.module.css +2 -2
  574. package/dist/cssm/components/ModalPage/ModalPage.module.css +15 -16
  575. package/dist/cssm/components/ModalPage/ModalPageBase.js +49 -0
  576. package/dist/cssm/components/ModalPage/ModalPageBase.js.map +1 -0
  577. package/dist/cssm/components/ModalPage/ModalPageInternal.js +21 -32
  578. package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
  579. package/dist/cssm/components/ModalPage/types.js.map +1 -1
  580. package/dist/cssm/components/ModalPageFooter/ModalPageFooter.module.css +4 -4
  581. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +2 -3
  582. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +20 -7
  583. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  584. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.module.css +1 -1
  585. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js +13 -4
  586. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
  587. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContext.js +9 -0
  588. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContext.js.map +1 -0
  589. package/dist/cssm/components/Pagination/Pagination.js +5 -2
  590. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  591. package/dist/cssm/components/Pagination/Pagination.module.css +1 -1
  592. package/dist/cssm/components/Pagination/PaginationPage/PaginationPage.module.css +9 -9
  593. package/dist/cssm/components/Panel/Panel.module.css +3 -3
  594. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +30 -30
  595. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +3 -1
  596. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  597. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +16 -8
  598. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +10 -10
  599. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.module.css +7 -7
  600. package/dist/cssm/components/Placeholder/Placeholder.module.css +3 -3
  601. package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
  602. package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
  603. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +9 -2
  604. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  605. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.module.css +14 -9
  606. package/dist/cssm/components/Popover/Popover.js +4 -4
  607. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  608. package/dist/cssm/components/Popover/Popover.module.css +1 -1
  609. package/dist/cssm/components/Popover/usePopover.js +62 -44
  610. package/dist/cssm/components/Popover/usePopover.js.map +1 -1
  611. package/dist/cssm/components/Popper/Popper.js +15 -5
  612. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  613. package/dist/cssm/components/Progress/Progress.js +29 -9
  614. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  615. package/dist/cssm/components/Progress/Progress.module.css +20 -9
  616. package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +14 -14
  617. package/dist/cssm/components/Radio/Radio.module.css +1 -1
  618. package/dist/cssm/components/Radio/RadioInput/RadioInput.module.css +1 -1
  619. package/dist/cssm/components/RadioGroup/RadioGroup.module.css +1 -1
  620. package/dist/cssm/components/Removable/Removable.js +8 -4
  621. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  622. package/dist/cssm/components/Removable/Removable.module.css +19 -6
  623. package/dist/cssm/components/RichCell/RichCell.module.css +10 -10
  624. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.module.css +4 -4
  625. package/dist/cssm/components/Root/Root.module.css +10 -10
  626. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +1 -0
  627. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  628. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +12 -12
  629. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +4 -1
  630. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  631. package/dist/cssm/components/ScrollArrow/ScrollArrow.module.css +15 -14
  632. package/dist/cssm/components/Search/Search.js +7 -2
  633. package/dist/cssm/components/Search/Search.js.map +1 -1
  634. package/dist/cssm/components/Search/Search.module.css +44 -32
  635. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +10 -7
  636. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  637. package/dist/cssm/components/SegmentedControl/SegmentedControl.module.css +16 -7
  638. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +14 -14
  639. package/dist/cssm/components/Select/Select.module.css +15 -15
  640. package/dist/cssm/components/SelectionControl/SelectionControl.module.css +2 -2
  641. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +5 -5
  642. package/dist/cssm/components/Separator/Separator.module.css +3 -3
  643. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +18 -16
  644. package/dist/cssm/components/SimpleGrid/SimpleGrid.module.css +2 -2
  645. package/dist/cssm/components/Skeleton/Skeleton.module.css +8 -8
  646. package/dist/cssm/components/Slider/Slider.js +20 -17
  647. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  648. package/dist/cssm/components/Slider/Slider.module.css +25 -4
  649. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js +5 -1
  650. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  651. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.module.css +8 -8
  652. package/dist/cssm/components/Snackbar/Snackbar.js +6 -3
  653. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  654. package/dist/cssm/components/Snackbar/Snackbar.module.css +23 -6
  655. package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.module.css +9 -8
  656. package/dist/cssm/components/Snackbar/utils.js +11 -8
  657. package/dist/cssm/components/Snackbar/utils.js.map +1 -1
  658. package/dist/cssm/components/Spacing/Spacing.module.css +1 -1
  659. package/dist/cssm/components/Spinner/Spinner.module.css +2 -2
  660. package/dist/cssm/components/SplitCol/SplitCol.module.css +9 -9
  661. package/dist/cssm/components/SplitLayout/SplitLayout.module.css +2 -2
  662. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.module.css +4 -4
  663. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -1
  664. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  665. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.module.css +10 -6
  666. package/dist/cssm/components/Switch/Switch.js +4 -1
  667. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  668. package/dist/cssm/components/Switch/Switch.module.css +25 -17
  669. package/dist/cssm/components/Tabbar/Tabbar.module.css +5 -5
  670. package/dist/cssm/components/TabbarItem/TabbarItem.module.css +16 -16
  671. package/dist/cssm/components/Tabs/Tabs.js +3 -1
  672. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  673. package/dist/cssm/components/Tabs/Tabs.module.css +1 -1
  674. package/dist/cssm/components/TabsItem/TabsItem.module.css +21 -20
  675. package/dist/cssm/components/Tappable/Tappable.module.css +6 -6
  676. package/dist/cssm/components/Textarea/Textarea.module.css +7 -3
  677. package/dist/cssm/components/ToolButton/ToolButton.module.css +7 -7
  678. package/dist/cssm/components/Tooltip/Tooltip.js +7 -80
  679. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  680. package/dist/cssm/components/Tooltip/useTooltip.js +97 -0
  681. package/dist/cssm/components/Tooltip/useTooltip.js.map +1 -0
  682. package/dist/cssm/components/TooltipBase/TooltipBase.module.css +9 -9
  683. package/dist/cssm/components/Typography/Caption/Caption.module.css +96 -96
  684. package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.module.css +64 -64
  685. package/dist/cssm/components/Typography/EllipsisText/EllipsisText.module.css +3 -3
  686. package/dist/cssm/components/Typography/Footnote/Footnote.module.css +32 -32
  687. package/dist/cssm/components/Typography/Headline/Headline.module.css +20 -20
  688. package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +16 -16
  689. package/dist/cssm/components/Typography/Subhead/Subhead.module.css +16 -16
  690. package/dist/cssm/components/Typography/Text/Text.module.css +16 -16
  691. package/dist/cssm/components/Typography/Title/Title.module.css +48 -48
  692. package/dist/cssm/components/Typography/Typography.module.css +1 -1
  693. package/dist/cssm/components/UnstyledTextField/UnstyledTextField.module.css +5 -5
  694. package/dist/cssm/components/UsersStack/UsersStack.js +4 -7
  695. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  696. package/dist/cssm/components/UsersStack/UsersStack.module.css +4 -4
  697. package/dist/cssm/components/View/View.module.css +8 -8
  698. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +10 -10
  699. package/dist/cssm/components/WriteBar/WriteBar.module.css +10 -11
  700. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.module.css +9 -9
  701. package/dist/cssm/context/CalendarDirectionContext.js.map +1 -1
  702. package/dist/cssm/helpers/getValueByKey.js +17 -0
  703. package/dist/cssm/helpers/getValueByKey.js.map +1 -0
  704. package/dist/cssm/hooks/useAutoDetectDirection.js +21 -0
  705. package/dist/cssm/hooks/useAutoDetectDirection.js.map +1 -0
  706. package/dist/cssm/hooks/useConfigDirection.js +7 -0
  707. package/dist/cssm/hooks/useConfigDirection.js.map +1 -0
  708. package/dist/cssm/hooks/useFloatingElement.js +70 -0
  709. package/dist/cssm/hooks/useFloatingElement.js.map +1 -0
  710. package/dist/cssm/hooks/useFocusVisible.js +10 -1
  711. package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
  712. package/dist/cssm/hooks/useReferenceElement.js +13 -0
  713. package/dist/cssm/hooks/useReferenceElement.js.map +1 -0
  714. package/dist/cssm/hooks/useTabsNavigation.js +3 -3
  715. package/dist/cssm/hooks/useTabsNavigation.js.map +1 -1
  716. package/dist/cssm/hooks/useTodayDate.js +4 -4
  717. package/dist/cssm/hooks/useTodayDate.js.map +1 -1
  718. package/dist/cssm/index.js +6 -1
  719. package/dist/cssm/index.js.map +1 -1
  720. package/dist/cssm/lib/SSR.js +2 -1
  721. package/dist/cssm/lib/SSR.js.map +1 -1
  722. package/dist/cssm/lib/date.js +15 -0
  723. package/dist/cssm/lib/date.js.map +1 -1
  724. package/dist/cssm/lib/direction/index.js +3 -0
  725. package/dist/cssm/lib/direction/index.js.map +1 -0
  726. package/dist/cssm/lib/floating/adapters.js.map +1 -1
  727. package/dist/cssm/lib/floating/customResizeObserver.js +2 -5
  728. package/dist/cssm/lib/floating/customResizeObserver.js.map +1 -1
  729. package/dist/cssm/lib/floating/functions.js +1 -1
  730. package/dist/cssm/lib/floating/functions.js.map +1 -1
  731. package/dist/cssm/lib/floating/types/component.js.map +1 -1
  732. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -2
  733. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  734. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -1
  735. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  736. package/dist/cssm/lib/floating/useReferenceHiddenChangeCallback.js +21 -0
  737. package/dist/cssm/lib/floating/useReferenceHiddenChangeCallback.js.map +1 -0
  738. package/dist/cssm/lib/object.js +9 -0
  739. package/dist/cssm/lib/object.js.map +1 -0
  740. package/dist/cssm/lib/select.js.map +1 -1
  741. package/dist/cssm/lib/sheet/controllers/BottomSheetController.js +13 -23
  742. package/dist/cssm/lib/sheet/controllers/BottomSheetController.js.map +1 -1
  743. package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js +4 -5
  744. package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js.map +1 -1
  745. package/dist/cssm/lib/tokens/TokensClassProvider.module.css +1 -1
  746. package/dist/cssm/styles/common.css +2 -2
  747. package/dist/cssm/styles/themes.css +22 -5
  748. package/dist/helpers/getMergedSameEventsByProps.d.ts.map +1 -1
  749. package/dist/helpers/getValueByKey.d.ts +5 -0
  750. package/dist/helpers/getValueByKey.d.ts.map +1 -0
  751. package/dist/helpers/getValueByKey.js +17 -0
  752. package/dist/helpers/getValueByKey.js.map +1 -0
  753. package/dist/helpers/math.d.ts.map +1 -1
  754. package/dist/hooks/useAdaptivityConditionalRender/helpers.d.ts.map +1 -1
  755. package/dist/hooks/useAutoDetectColorScheme.d.ts.map +1 -1
  756. package/dist/hooks/useAutoDetectDirection.d.ts +3 -0
  757. package/dist/hooks/useAutoDetectDirection.d.ts.map +1 -0
  758. package/dist/hooks/useAutoDetectDirection.js +21 -0
  759. package/dist/hooks/useAutoDetectDirection.js.map +1 -0
  760. package/dist/hooks/useBooleanState.d.ts.map +1 -1
  761. package/dist/hooks/useConfigDirection.d.ts +3 -0
  762. package/dist/hooks/useConfigDirection.d.ts.map +1 -0
  763. package/dist/hooks/useConfigDirection.js +7 -0
  764. package/dist/hooks/useConfigDirection.js.map +1 -0
  765. package/dist/hooks/useDraggableWithDomApi/autoScroll.d.ts.map +1 -1
  766. package/dist/hooks/useDraggableWithDomApi/useDraggableWithDomApi.d.ts.map +1 -1
  767. package/dist/hooks/useDraggableWithDomApi/utils.d.ts.map +1 -1
  768. package/dist/hooks/useFloatingElement.d.ts +26 -0
  769. package/dist/hooks/useFloatingElement.d.ts.map +1 -0
  770. package/dist/hooks/useFloatingElement.js +71 -0
  771. package/dist/hooks/useFloatingElement.js.map +1 -0
  772. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  773. package/dist/hooks/useFocusVisible.d.ts +9 -1
  774. package/dist/hooks/useFocusVisible.d.ts.map +1 -1
  775. package/dist/hooks/useFocusVisible.js +10 -1
  776. package/dist/hooks/useFocusVisible.js.map +1 -1
  777. package/dist/hooks/useGlobalEscKeyDown.d.ts.map +1 -1
  778. package/dist/hooks/useGlobalOnClickOutside.d.ts.map +1 -1
  779. package/dist/hooks/useMutationObserver.d.ts.map +1 -1
  780. package/dist/hooks/useNativeFormResetListener.d.ts.map +1 -1
  781. package/dist/hooks/usePagination.d.ts.map +1 -1
  782. package/dist/hooks/usePatchChildren.d.ts.map +1 -1
  783. package/dist/hooks/useReferenceElement.d.ts +3 -0
  784. package/dist/hooks/useReferenceElement.d.ts.map +1 -0
  785. package/dist/hooks/useReferenceElement.js +13 -0
  786. package/dist/hooks/useReferenceElement.js.map +1 -0
  787. package/dist/hooks/useTabsNavigation.d.ts +1 -1
  788. package/dist/hooks/useTabsNavigation.d.ts.map +1 -1
  789. package/dist/hooks/useTabsNavigation.js +3 -3
  790. package/dist/hooks/useTabsNavigation.js.map +1 -1
  791. package/dist/hooks/useTodayDate.d.ts.map +1 -1
  792. package/dist/hooks/useTodayDate.js +4 -4
  793. package/dist/hooks/useTodayDate.js.map +1 -1
  794. package/dist/index.d.ts +9 -2
  795. package/dist/index.d.ts.map +1 -1
  796. package/dist/index.js +6 -1
  797. package/dist/index.js.map +1 -1
  798. package/dist/lib/SSR.d.ts +2 -0
  799. package/dist/lib/SSR.d.ts.map +1 -1
  800. package/dist/lib/SSR.js +2 -1
  801. package/dist/lib/SSR.js.map +1 -1
  802. package/dist/lib/accessibility.d.ts.map +1 -1
  803. package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts.map +1 -1
  804. package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
  805. package/dist/lib/calendar.d.ts.map +1 -1
  806. package/dist/lib/callMultiple.d.ts.map +1 -1
  807. package/dist/lib/children.d.ts.map +1 -1
  808. package/dist/lib/createPortal.d.ts.map +1 -1
  809. package/dist/lib/date.d.ts +2 -0
  810. package/dist/lib/date.d.ts.map +1 -1
  811. package/dist/lib/date.js +15 -0
  812. package/dist/lib/date.js.map +1 -1
  813. package/dist/lib/direction/index.d.ts +2 -0
  814. package/dist/lib/direction/index.d.ts.map +1 -0
  815. package/dist/lib/direction/index.js +3 -0
  816. package/dist/lib/direction/index.js.map +1 -0
  817. package/dist/lib/dom.d.ts.map +1 -1
  818. package/dist/lib/floating/adapters.d.ts +1 -0
  819. package/dist/lib/floating/adapters.d.ts.map +1 -1
  820. package/dist/lib/floating/adapters.js.map +1 -1
  821. package/dist/lib/floating/customResizeObserver.d.ts +1 -1
  822. package/dist/lib/floating/customResizeObserver.d.ts.map +1 -1
  823. package/dist/lib/floating/customResizeObserver.js +2 -5
  824. package/dist/lib/floating/customResizeObserver.js.map +1 -1
  825. package/dist/lib/floating/functions.d.ts +8 -1
  826. package/dist/lib/floating/functions.d.ts.map +1 -1
  827. package/dist/lib/floating/functions.js +1 -1
  828. package/dist/lib/floating/functions.js.map +1 -1
  829. package/dist/lib/floating/types/component.d.ts +10 -0
  830. package/dist/lib/floating/types/component.d.ts.map +1 -1
  831. package/dist/lib/floating/types/component.js.map +1 -1
  832. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +3 -1
  833. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
  834. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -2
  835. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  836. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.d.ts.map +1 -1
  837. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -1
  838. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  839. package/dist/lib/floating/useFloatingWithInteractions/useResolveTriggerType.d.ts.map +1 -1
  840. package/dist/lib/floating/useReferenceHiddenChangeCallback.d.ts +4 -0
  841. package/dist/lib/floating/useReferenceHiddenChangeCallback.d.ts.map +1 -0
  842. package/dist/lib/floating/useReferenceHiddenChangeCallback.js +21 -0
  843. package/dist/lib/floating/useReferenceHiddenChangeCallback.js.map +1 -0
  844. package/dist/lib/fx.d.ts.map +1 -1
  845. package/dist/lib/isRefObject.d.ts.map +1 -1
  846. package/dist/lib/object.d.ts +2 -0
  847. package/dist/lib/object.d.ts.map +1 -0
  848. package/dist/lib/object.js +9 -0
  849. package/dist/lib/object.js.map +1 -0
  850. package/dist/lib/rafSchd.d.ts.map +1 -1
  851. package/dist/lib/react/simulateReactInput.d.ts.map +1 -1
  852. package/dist/lib/select.d.ts +1 -0
  853. package/dist/lib/select.d.ts.map +1 -1
  854. package/dist/lib/select.js.map +1 -1
  855. package/dist/lib/sheet/controllers/BottomSheetController.d.ts.map +1 -1
  856. package/dist/lib/sheet/controllers/BottomSheetController.js +13 -23
  857. package/dist/lib/sheet/controllers/BottomSheetController.js.map +1 -1
  858. package/dist/lib/sheet/controllers/CSSTransitionController.d.ts.map +1 -1
  859. package/dist/lib/sheet/controllers/CSSTransitionController.js +4 -5
  860. package/dist/lib/sheet/controllers/CSSTransitionController.js.map +1 -1
  861. package/dist/lib/sheet/useBottomSheet.d.ts.map +1 -1
  862. package/dist/lib/touch/functions.d.ts.map +1 -1
  863. package/dist/lib/utils.d.ts.map +1 -1
  864. package/dist/vkui.css +1 -1
  865. package/dist/vkui.css.map +1 -1
  866. package/package.json +5 -4
  867. package/src/components/Accordion/Accordion.module.css +6 -6
  868. package/src/components/Accordion/Accordion.tsx +2 -2
  869. package/src/components/ActionSheet/ActionSheet.module.css +9 -9
  870. package/src/components/ActionSheet/ActionSheet.tsx +5 -2
  871. package/src/components/ActionSheet/ActionSheetDropdownMenu.tsx +11 -3
  872. package/src/components/ActionSheet/ActionSheetDropdownSheet.tsx +11 -3
  873. package/src/components/ActionSheet/types.ts +4 -0
  874. package/src/components/ActionSheetItem/ActionSheetItem.module.css +17 -17
  875. package/src/components/Alert/Alert.module.css +25 -25
  876. package/src/components/Alert/Alert.tsx +33 -118
  877. package/src/components/Alert/AlertBase.tsx +156 -0
  878. package/src/components/Alert/AlertTypography.tsx +2 -1
  879. package/src/components/AppRoot/AppRoot.module.css +2 -2
  880. package/src/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.tsx +1 -1
  881. package/src/components/AppRoot/ScrollContext.tsx +162 -50
  882. package/src/components/AspectRatio/AspectRatio.module.css +2 -2
  883. package/src/components/Avatar/Avatar.module.css +1 -1
  884. package/src/components/Avatar/AvatarBadge/AvatarBadge.module.css +8 -3
  885. package/src/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.tsx +4 -1
  886. package/src/components/Banner/Banner.module.css +17 -17
  887. package/src/components/Button/Button.module.css +11 -11
  888. package/src/components/ButtonGroup/ButtonGroup.tsx +2 -0
  889. package/src/components/Calendar/Calendar.module.css +7 -7
  890. package/src/components/Calendar/Calendar.tsx +108 -98
  891. package/src/components/CalendarDay/CalendarDay.module.css +11 -11
  892. package/src/components/CalendarDay/CalendarDay.tsx +1 -3
  893. package/src/components/CalendarDays/CalendarDays.module.css +7 -7
  894. package/src/components/CalendarHeader/CalendarHeader.module.css +4 -4
  895. package/src/components/CalendarHeader/CalendarHeader.tsx +1 -3
  896. package/src/components/CalendarRange/CalendarRange.module.css +5 -5
  897. package/src/components/CalendarRange/CalendarRange.tsx +97 -106
  898. package/src/components/CalendarTime/CalendarTime.module.css +1 -1
  899. package/src/components/Card/Card.module.css +7 -7
  900. package/src/components/CardGrid/CardGrid.module.css +3 -3
  901. package/src/components/CardScroll/CardScroll.module.css +16 -16
  902. package/src/components/CardScroll/CardScroll.tsx +49 -29
  903. package/src/components/CarouselBase/CarouselBase.module.css +11 -11
  904. package/src/components/CarouselBase/CarouselBase.tsx +107 -44
  905. package/src/components/CarouselBase/helpers.ts +108 -46
  906. package/src/components/Cell/Cell.module.css +16 -2
  907. package/src/components/Cell/CellDragger/CellDragger.module.css +2 -2
  908. package/src/components/CellButton/CellButton.module.css +7 -7
  909. package/src/components/CellButtonGroup/CellButtonGroup.tsx +20 -0
  910. package/src/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.module.css +5 -0
  911. package/src/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.tsx +21 -0
  912. package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +2 -2
  913. package/src/components/ChipsInputBase/Chip/Chip.module.css +16 -16
  914. package/src/components/ChipsInputBase/ChipsInputBase.module.css +10 -10
  915. package/src/components/ChipsSelect/ChipsSelect.module.css +1 -1
  916. package/src/components/ChipsSelect/ChipsSelect.tsx +2 -0
  917. package/src/components/ChipsSelect/useChipsSelect.ts +12 -1
  918. package/src/components/Clickable/Clickable.module.css +1 -1
  919. package/src/components/Clickable/Clickable.tsx +37 -25
  920. package/src/components/ColorSchemeProvider/ColorSchemeProvider.tsx +1 -1
  921. package/src/components/ConfigProvider/ConfigProvider.tsx +4 -1
  922. package/src/components/ConfigProvider/ConfigProviderContext.tsx +29 -15
  923. package/src/components/ContentBadge/ContentBadge.module.css +7 -7
  924. package/src/components/ContentCard/ContentCard.module.css +6 -6
  925. package/src/components/ContentCard/ContentCard.tsx +9 -3
  926. package/src/components/Counter/Counter.module.css +4 -4
  927. package/src/components/CustomScrollView/CustomScrollView.module.css +2 -2
  928. package/src/components/CustomSelect/CustomSelect.module.css +2 -2
  929. package/src/components/CustomSelect/CustomSelect.tsx +151 -93
  930. package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +12 -12
  931. package/src/components/CustomSelectDropdown/CustomSelectDropdown.module.css +2 -2
  932. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +1 -0
  933. package/src/components/CustomSelectOption/CustomSelectOption.module.css +8 -8
  934. package/src/components/DateInput/DateInput.module.css +38 -5
  935. package/src/components/DateInput/DateInput.tsx +123 -87
  936. package/src/components/DateInput/hooks.ts +84 -0
  937. package/src/components/DateRangeInput/DateRangeInput.module.css +3 -3
  938. package/src/components/DateRangeInput/DateRangeInput.tsx +104 -81
  939. package/src/components/DirectionProvider/DirectionProvider.tsx +17 -0
  940. package/src/components/DropZone/DropZone.module.css +2 -2
  941. package/src/components/FixedLayout/FixedLayout.module.css +3 -3
  942. package/src/components/Flex/Flex.module.css +26 -14
  943. package/src/components/Flex/Flex.tsx +3 -6
  944. package/src/components/FloatingArrow/FloatingArrow.module.css +1 -1
  945. package/src/components/Footer/Footer.module.css +1 -1
  946. package/src/components/FormField/FormField.module.css +24 -24
  947. package/src/components/FormItem/FormItem.module.css +10 -10
  948. package/src/components/FormLayoutGroup/FormLayoutGroup.module.css +5 -5
  949. package/src/components/GridAvatar/GridAvatar.module.css +2 -2
  950. package/src/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +2 -2
  951. package/src/components/Group/Group.module.css +16 -16
  952. package/src/components/Header/Header.module.css +5 -5
  953. package/src/components/HorizontalCell/HorizontalCell.module.css +3 -3
  954. package/src/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.module.css +2 -2
  955. package/src/components/HorizontalScroll/HorizontalScroll.module.css +10 -4
  956. package/src/components/HorizontalScroll/HorizontalScroll.tsx +47 -19
  957. package/src/components/IconButton/IconButton.module.css +9 -9
  958. package/src/components/ImageBase/ImageBase.module.css +15 -6
  959. package/src/components/ImageBase/ImageBase.tsx +16 -5
  960. package/src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +5 -5
  961. package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +8 -8
  962. package/src/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +2 -2
  963. package/src/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.tsx +5 -4
  964. package/src/components/ImageBase/ImageBaseOverlay/hooks.ts +31 -0
  965. package/src/components/ImageBase/ImageBaseOverlay/types.ts +4 -0
  966. package/src/components/InfoRow/InfoRow.module.css +3 -3
  967. package/src/components/Input/Input.module.css +5 -5
  968. package/src/components/InputLike/InputLike.module.css +3 -3
  969. package/src/components/Link/Link.module.css +6 -6
  970. package/src/components/Mark/Mark.module.css +2 -2
  971. package/src/components/MiniInfoCell/MiniInfoCell.module.css +5 -5
  972. package/src/components/ModalCard/ModalCard.module.css +4 -4
  973. package/src/components/ModalCard/ModalCard.tsx +1 -0
  974. package/src/components/ModalCard/ModalCardInternal.tsx +2 -0
  975. package/src/components/ModalCard/types.ts +2 -1
  976. package/src/components/ModalCardBase/ModalCardBase.module.css +7 -7
  977. package/src/components/ModalCardBase/ModalCardBase.tsx +50 -10
  978. package/src/components/ModalDismissButton/ModalDismissButton.module.css +0 -28
  979. package/src/components/ModalDismissButton/ModalDismissButton.tsx +11 -9
  980. package/src/components/ModalOutlet/ModalOutlet.module.css +1 -1
  981. package/src/components/ModalOutsideButton/ModalOutsideButton.module.css +30 -0
  982. package/src/components/ModalOutsideButton/ModalOutsideButton.tsx +38 -0
  983. package/src/components/ModalOutsideButtons/ModalOutsideButtons.module.css +6 -0
  984. package/src/components/ModalOutsideButtons/ModalOutsideButtons.tsx +14 -0
  985. package/src/components/ModalOverlay/ModalOverlay.module.css +2 -2
  986. package/src/components/ModalPage/ModalPage.module.css +15 -16
  987. package/src/components/ModalPage/ModalPageBase.tsx +92 -0
  988. package/src/components/ModalPage/ModalPageInternal.tsx +23 -42
  989. package/src/components/ModalPage/types.ts +12 -0
  990. package/src/components/ModalPageFooter/ModalPageFooter.module.css +4 -4
  991. package/src/components/ModalPageHeader/ModalPageHeader.module.css +2 -3
  992. package/src/components/OnboardingTooltip/OnboardingTooltip.module.css +1 -1
  993. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +21 -12
  994. package/src/components/OnboardingTooltip/OnboardingTooltipContainer.tsx +10 -1
  995. package/src/components/OnboardingTooltip/OnboardingTooltipContext.tsx +11 -0
  996. package/src/components/Pagination/Pagination.module.css +1 -1
  997. package/src/components/Pagination/Pagination.tsx +5 -2
  998. package/src/components/Pagination/PaginationPage/PaginationPage.module.css +8 -8
  999. package/src/components/Panel/Panel.module.css +3 -3
  1000. package/src/components/PanelHeader/PanelHeader.module.css +27 -27
  1001. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +3 -0
  1002. package/src/components/PanelHeaderButton/PanelHeaderButton.module.css +14 -8
  1003. package/src/components/PanelHeaderContent/PanelHeaderContent.module.css +10 -10
  1004. package/src/components/PanelHeaderContext/PanelHeaderContext.module.css +7 -7
  1005. package/src/components/Placeholder/Placeholder.module.css +3 -3
  1006. package/src/components/PlatformProvider/PlatformProvider.tsx +1 -1
  1007. package/src/components/PopoutWrapper/PopoutWrapper.module.css +14 -9
  1008. package/src/components/PopoutWrapper/PopoutWrapper.tsx +25 -2
  1009. package/src/components/Popover/Popover.module.css +1 -1
  1010. package/src/components/Popover/Popover.tsx +6 -4
  1011. package/src/components/Popover/usePopover.tsx +106 -85
  1012. package/src/components/Popper/Popper.tsx +17 -6
  1013. package/src/components/Progress/Progress.module.css +20 -9
  1014. package/src/components/Progress/Progress.tsx +38 -9
  1015. package/src/components/PullToRefresh/PullToRefresh.module.css +14 -14
  1016. package/src/components/Radio/Radio.module.css +1 -1
  1017. package/src/components/Radio/RadioInput/RadioInput.module.css +1 -1
  1018. package/src/components/RadioGroup/RadioGroup.module.css +1 -1
  1019. package/src/components/Removable/Removable.module.css +19 -6
  1020. package/src/components/Removable/Removable.tsx +10 -3
  1021. package/src/components/RichCell/RichCell.module.css +10 -10
  1022. package/src/components/RichCell/RichCellIcon/RichCellIcon.module.css +4 -4
  1023. package/src/components/Root/Root.module.css +10 -10
  1024. package/src/components/ScreenSpinner/ScreenSpinner.module.css +11 -11
  1025. package/src/components/ScreenSpinner/ScreenSpinner.tsx +1 -1
  1026. package/src/components/ScrollArrow/ScrollArrow.module.css +15 -14
  1027. package/src/components/ScrollArrow/ScrollArrow.tsx +10 -1
  1028. package/src/components/Search/Search.module.css +40 -28
  1029. package/src/components/Search/Search.tsx +16 -0
  1030. package/src/components/SegmentedControl/SegmentedControl.module.css +16 -7
  1031. package/src/components/SegmentedControl/SegmentedControl.tsx +11 -13
  1032. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +11 -11
  1033. package/src/components/Select/Select.module.css +14 -14
  1034. package/src/components/SelectionControl/SelectionControl.module.css +2 -2
  1035. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +5 -5
  1036. package/src/components/Separator/Separator.module.css +3 -3
  1037. package/src/components/SimpleCell/SimpleCell.module.css +18 -16
  1038. package/src/components/SimpleGrid/SimpleGrid.module.css +2 -2
  1039. package/src/components/Skeleton/Skeleton.module.css +8 -8
  1040. package/src/components/Slider/Slider.module.css +25 -4
  1041. package/src/components/Slider/Slider.tsx +23 -15
  1042. package/src/components/Slider/SliderThumb/SliderThumb.module.css +7 -7
  1043. package/src/components/Slider/SliderThumb/SliderThumb.tsx +5 -5
  1044. package/src/components/Snackbar/Snackbar.module.css +23 -6
  1045. package/src/components/Snackbar/Snackbar.tsx +7 -0
  1046. package/src/components/Snackbar/subcomponents/Basic/Basic.module.css +9 -8
  1047. package/src/components/Snackbar/utils.ts +24 -6
  1048. package/src/components/Spacing/Spacing.module.css +1 -1
  1049. package/src/components/Spinner/Spinner.module.css +2 -2
  1050. package/src/components/SplitCol/SplitCol.module.css +9 -9
  1051. package/src/components/SplitLayout/SplitLayout.module.css +2 -2
  1052. package/src/components/SubnavigationBar/SubnavigationBar.module.css +4 -4
  1053. package/src/components/SubnavigationButton/SubnavigationButton.module.css +9 -5
  1054. package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -0
  1055. package/src/components/Switch/Switch.module.css +25 -17
  1056. package/src/components/Switch/Switch.tsx +4 -0
  1057. package/src/components/Tabbar/Tabbar.module.css +5 -5
  1058. package/src/components/TabbarItem/TabbarItem.module.css +16 -16
  1059. package/src/components/Tabs/Tabs.module.css +1 -1
  1060. package/src/components/Tabs/Tabs.tsx +3 -1
  1061. package/src/components/TabsItem/TabsItem.module.css +21 -20
  1062. package/src/components/Tappable/Tappable.module.css +6 -6
  1063. package/src/components/Textarea/Textarea.module.css +7 -3
  1064. package/src/components/ToolButton/ToolButton.module.css +7 -7
  1065. package/src/components/Tooltip/Tooltip.tsx +9 -142
  1066. package/src/components/Tooltip/useTooltip.tsx +168 -0
  1067. package/src/components/TooltipBase/TooltipBase.module.css +9 -9
  1068. package/src/components/Typography/Caption/Caption.module.css +96 -96
  1069. package/src/components/Typography/DisplayTitle/DisplayTitle.module.css +64 -64
  1070. package/src/components/Typography/EllipsisText/EllipsisText.module.css +3 -3
  1071. package/src/components/Typography/Footnote/Footnote.module.css +32 -32
  1072. package/src/components/Typography/Headline/Headline.module.css +20 -20
  1073. package/src/components/Typography/Paragraph/Paragraph.module.css +16 -16
  1074. package/src/components/Typography/Subhead/Subhead.module.css +16 -16
  1075. package/src/components/Typography/Text/Text.module.css +16 -16
  1076. package/src/components/Typography/Title/Title.module.css +48 -48
  1077. package/src/components/Typography/Typography.module.css +1 -1
  1078. package/src/components/UnstyledTextField/UnstyledTextField.module.css +4 -4
  1079. package/src/components/UsersStack/UsersStack.module.css +4 -4
  1080. package/src/components/UsersStack/UsersStack.tsx +3 -7
  1081. package/src/components/View/View.module.css +8 -8
  1082. package/src/components/VisuallyHidden/VisuallyHidden.module.css +8 -8
  1083. package/src/components/WriteBar/WriteBar.module.css +10 -10
  1084. package/src/components/WriteBarIcon/WriteBarIcon.module.css +9 -9
  1085. package/src/context/CalendarDirectionContext.ts +1 -1
  1086. package/src/helpers/getValueByKey.ts +25 -0
  1087. package/src/hooks/useAutoDetectDirection.ts +18 -0
  1088. package/src/hooks/useConfigDirection.ts +8 -0
  1089. package/src/hooks/useFloatingElement.tsx +172 -0
  1090. package/src/hooks/useFocusVisible.ts +12 -1
  1091. package/src/hooks/useReferenceElement.tsx +13 -0
  1092. package/src/hooks/useTabsNavigation.ts +5 -3
  1093. package/src/hooks/useTodayDate.ts +34 -31
  1094. package/src/index.ts +9 -2
  1095. package/src/lib/SSR.tsx +11 -2
  1096. package/src/lib/date.ts +23 -0
  1097. package/src/lib/direction/index.ts +1 -0
  1098. package/src/lib/floating/adapters.ts +2 -0
  1099. package/src/lib/floating/customResizeObserver.ts +2 -1
  1100. package/src/lib/floating/functions.ts +15 -7
  1101. package/src/lib/floating/types/component.ts +10 -0
  1102. package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +6 -1
  1103. package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +2 -3
  1104. package/src/lib/floating/useReferenceHiddenChangeCallback.ts +26 -0
  1105. package/src/lib/object.ts +14 -0
  1106. package/src/lib/select.ts +2 -0
  1107. package/src/lib/sheet/controllers/BottomSheetController.ts +4 -1
  1108. package/src/lib/sheet/controllers/CSSTransitionController.ts +7 -4
  1109. package/src/lib/tokens/TokensClassProvider.module.css +1 -1
  1110. package/src/styles/common.css +2 -2
  1111. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.d.ts +0 -10
  1112. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.d.ts.map +0 -1
  1113. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.js +0 -38
  1114. package/dist/components/ModalCardBase/ModalCardBaseCloseButton.js.map +0 -1
  1115. package/dist/cssm/components/ModalCardBase/ModalCardBaseCloseButton.js +0 -39
  1116. package/dist/cssm/components/ModalCardBase/ModalCardBaseCloseButton.js.map +0 -1
  1117. package/dist/cssm/hooks/useDirection.js +0 -55
  1118. package/dist/cssm/hooks/useDirection.js.map +0 -1
  1119. package/dist/cssm/lib/tokens/index.js +0 -5
  1120. package/dist/cssm/lib/tokens/index.js.map +0 -1
  1121. package/dist/hooks/useDirection.d.ts +0 -39
  1122. package/dist/hooks/useDirection.d.ts.map +0 -1
  1123. package/dist/hooks/useDirection.js +0 -55
  1124. package/dist/hooks/useDirection.js.map +0 -1
  1125. package/dist/lib/tokens/index.d.ts +0 -5
  1126. package/dist/lib/tokens/index.d.ts.map +0 -1
  1127. package/dist/lib/tokens/index.js +0 -5
  1128. package/dist/lib/tokens/index.js.map +0 -1
  1129. package/src/components/ModalCardBase/ModalCardBaseCloseButton.tsx +0 -51
  1130. package/src/hooks/useDirection.ts +0 -63
  1131. package/src/lib/tokens/index.ts +0 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/date.ts"],"sourcesContent":["import { lightFormat } from 'date-fns';\n\nexport function parse(input: string, format: string, referenceDate: Date = new Date()): Date {\n const match2 = /^\\d\\d/; // 00 - 99\n const match4 = /^\\d{4}/; // 0000 - 9999\n\n const entries: Array<[string, RegExp, (val: string) => [string, number, boolean]]> = [\n ['yyyy', match4, (val) => ['Y', +val, true]],\n [\n 'MM',\n match2,\n (val) => {\n const numVal = +val;\n const okay = numVal > 0 && numVal <= 12;\n\n return ['M', numVal - 1, okay];\n },\n ],\n ['dd', match2, (val) => ['D', +val, true]],\n [\n 'HH',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 24;\n\n return ['h', numVal, okay];\n },\n ],\n [\n 'mm',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 60;\n\n return ['m', numVal, okay];\n },\n ],\n ];\n\n const superRegExp = new RegExp(entries.map((item) => item[0]).join('|'), 'g');\n\n const store: {\n [key: string]: number;\n } = {\n y: referenceDate.getFullYear(),\n M: referenceDate.getMonth(),\n d: referenceDate.getDate(),\n h: referenceDate.getHours(),\n m: referenceDate.getMinutes(),\n s: referenceDate.getSeconds(),\n ms: referenceDate.getMilliseconds(),\n };\n\n let prevInputIndex = 0;\n let lastNonFormatting = '';\n let lastFormatIndex = 0;\n let found = false;\n\n while (true) {\n const match = superRegExp.exec(format);\n\n if (!match) {\n break;\n }\n\n const length = match[0].length;\n const atIndex = superRegExp.lastIndex - length;\n\n const item = entries.find((item) => item[0] === match[0])!;\n\n lastNonFormatting = format.slice(lastFormatIndex, atIndex);\n lastFormatIndex = superRegExp.lastIndex;\n\n if (\n input.slice(prevInputIndex, prevInputIndex + lastNonFormatting.length) !== lastNonFormatting\n ) {\n return new Date('');\n }\n\n const value = input.slice(prevInputIndex + lastNonFormatting.length).match(item[1]);\n\n if (!value) {\n return new Date('');\n }\n\n prevInputIndex = prevInputIndex + lastNonFormatting.length + value[0].length;\n\n const [key, newValue, okay] = item[2](value[0]);\n\n if (!okay) {\n return new Date('');\n }\n\n store[key] = newValue;\n found = true;\n }\n\n if (!found) {\n return new Date('');\n }\n\n const date = new Date(store.Y, store.M, store.D, store.h, store.m, store.s, store.ms);\n\n // Since days of months are dynamic, they can't be validated in entries,\n // so we check it here, in the finalized date\n if (date.getMonth() !== store.M || date.getDate() !== store.D) {\n return new Date('');\n }\n\n return date;\n}\n\nexport function format(date: Date | number, format: string): string {\n return lightFormat(date, format);\n}\n\nexport function isMatch(input: string, format: string): boolean {\n return !isNaN(+parse(input, format));\n}\n"],"names":["lightFormat","parse","input","format","referenceDate","Date","match2","match4","entries","val","numVal","okay","parseInt","superRegExp","RegExp","map","item","join","store","y","getFullYear","M","getMonth","d","getDate","h","getHours","m","getMinutes","s","getSeconds","ms","getMilliseconds","prevInputIndex","lastNonFormatting","lastFormatIndex","found","match","exec","length","atIndex","lastIndex","find","slice","value","key","newValue","date","Y","D","isMatch","isNaN"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/lib/date.ts"],"sourcesContent":["import { TZDateMini } from '@date-fns/tz';\nimport { lightFormat } from 'date-fns';\n\nexport function parse(input: string, format: string, referenceDate: Date = new Date()): Date {\n const match2 = /^\\d\\d/; // 00 - 99\n const match4 = /^\\d{4}/; // 0000 - 9999\n\n const entries: Array<[string, RegExp, (val: string) => [string, number, boolean]]> = [\n ['yyyy', match4, (val) => ['Y', +val, true]],\n [\n 'MM',\n match2,\n (val) => {\n const numVal = +val;\n const okay = numVal > 0 && numVal <= 12;\n\n return ['M', numVal - 1, okay];\n },\n ],\n ['dd', match2, (val) => ['D', +val, true]],\n [\n 'HH',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 24;\n\n return ['h', numVal, okay];\n },\n ],\n [\n 'mm',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 60;\n\n return ['m', numVal, okay];\n },\n ],\n ];\n\n const superRegExp = new RegExp(entries.map((item) => item[0]).join('|'), 'g');\n\n const store: {\n [key: string]: number;\n } = {\n y: referenceDate.getFullYear(),\n M: referenceDate.getMonth(),\n d: referenceDate.getDate(),\n h: referenceDate.getHours(),\n m: referenceDate.getMinutes(),\n s: referenceDate.getSeconds(),\n ms: referenceDate.getMilliseconds(),\n };\n\n let prevInputIndex = 0;\n let lastNonFormatting = '';\n let lastFormatIndex = 0;\n let found = false;\n\n while (true) {\n const match = superRegExp.exec(format);\n\n if (!match) {\n break;\n }\n\n const length = match[0].length;\n const atIndex = superRegExp.lastIndex - length;\n\n const item = entries.find((item) => item[0] === match[0])!;\n\n lastNonFormatting = format.slice(lastFormatIndex, atIndex);\n lastFormatIndex = superRegExp.lastIndex;\n\n if (\n input.slice(prevInputIndex, prevInputIndex + lastNonFormatting.length) !== lastNonFormatting\n ) {\n return new Date('');\n }\n\n const value = input.slice(prevInputIndex + lastNonFormatting.length).match(item[1]);\n\n if (!value) {\n return new Date('');\n }\n\n prevInputIndex = prevInputIndex + lastNonFormatting.length + value[0].length;\n\n const [key, newValue, okay] = item[2](value[0]);\n\n if (!okay) {\n return new Date('');\n }\n\n store[key] = newValue;\n found = true;\n }\n\n if (!found) {\n return new Date('');\n }\n\n const date = new Date(store.Y, store.M, store.D, store.h, store.m, store.s, store.ms);\n\n // Since days of months are dynamic, they can't be validated in entries,\n // so we check it here, in the finalized date\n if (date.getMonth() !== store.M || date.getDate() !== store.D) {\n return new Date('');\n }\n\n return date;\n}\n\nexport const convertDateToTimeZone = (\n date?: Date | null,\n timezone?: string,\n): Date | undefined | null => {\n if (!timezone) {\n return date;\n }\n return date ? TZDateMini.tz(timezone, date) : undefined;\n};\n\nexport const convertDateFromTimeZone = (\n date?: Date | null,\n timezone?: string,\n): Date | undefined | null => {\n if (!timezone) {\n return date;\n }\n // eslint-disable-next-line new-cap\n const systemTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n return date ? TZDateMini.tz(systemTimezone, date) : undefined;\n};\n\nexport function format(date: Date | number, format: string): string {\n return lightFormat(date, format);\n}\n\nexport function isMatch(input: string, format: string): boolean {\n return !isNaN(+parse(input, format));\n}\n"],"names":["TZDateMini","lightFormat","parse","input","format","referenceDate","Date","match2","match4","entries","val","numVal","okay","parseInt","superRegExp","RegExp","map","item","join","store","y","getFullYear","M","getMonth","d","getDate","h","getHours","m","getMinutes","s","getSeconds","ms","getMilliseconds","prevInputIndex","lastNonFormatting","lastFormatIndex","found","match","exec","length","atIndex","lastIndex","find","slice","value","key","newValue","date","Y","D","convertDateToTimeZone","timezone","tz","undefined","convertDateFromTimeZone","systemTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","isMatch","isNaN"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/direction/index.ts"],"sourcesContent":["export type Direction = 'ltr' | 'rtl';\n"],"names":[],"mappings":"AAAA,WAAsC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/floating/adapters.ts"],"sourcesContent":["import {\n autoUpdate as autoUpdateLib,\n type AutoUpdateOptions,\n type FloatingElement,\n type ReferenceType,\n} from '@vkontakte/vkui-floating-ui/react-dom';\nimport { isHTMLElement } from '../dom';\nimport { CustomResizeObserver } from './customResizeObserver';\n\nexport {\n useFloating,\n offset as offsetMiddleware,\n flip as flipMiddleware,\n shift as shiftMiddleware,\n autoPlacement as autoPlacementMiddleware,\n arrow as arrowMiddleware,\n size as sizeMiddleware,\n hide as hideMiddleware,\n getOverflowAncestors,\n} from '@vkontakte/vkui-floating-ui/react-dom';\n\nconst defaultOptions = {\n ancestorScroll: true,\n ancestorResize: true,\n // По умолчанию отключаем, т.к. навешивать `CustomResizeObserver` может быть дорого.\n // В `autoUpdateLib` по умолчанию опция включена. Там используется ResizeObserver, но и он не менее дорогостоящий.\n // https://github.com/floating-ui/floating-ui/blob/0a34fe9cc2c7483976785a71bd0777cd7c3f2a6a/packages/dom/src/autoUpdate.ts#L6-L33\n elementResize: false,\n animationFrame: false,\n};\n\nexport function autoUpdateFloatingElement(\n reference: ReferenceType,\n floating: FloatingElement,\n update: () => void,\n options: Partial<AutoUpdateOptions> = defaultOptions,\n): ReturnType<typeof autoUpdateLib> {\n const { elementResize = false, ...restOptions } = options;\n\n // eslint-disable-next-line no-restricted-globals, compat/compat\n const canUseResizeObserver = window.ResizeObserver !== undefined;\n const autoUpdateLibDisposer = autoUpdateLib(reference, floating, update, {\n ...restOptions,\n elementResize: elementResize && canUseResizeObserver,\n });\n\n // В случае если `ResizeObserver` будет полифилиться или он будет покрываться нашим `browserlist`, то надо удалить\n // код с `CustomResizeObserver`.\n let observer: CustomResizeObserver | null = null;\n if (elementResize && !canUseResizeObserver) {\n observer = new CustomResizeObserver(update);\n\n if (isHTMLElement(reference)) {\n observer.observe(reference);\n }\n\n observer.observe(floating);\n\n observer.appendToTheDOM();\n }\n\n return () => {\n if (observer) {\n observer.disconnect();\n observer = null;\n }\n autoUpdateLibDisposer();\n };\n}\n"],"names":["autoUpdate","autoUpdateLib","isHTMLElement","CustomResizeObserver","useFloating","offset","offsetMiddleware","flip","flipMiddleware","shift","shiftMiddleware","autoPlacement","autoPlacementMiddleware","arrow","arrowMiddleware","size","sizeMiddleware","hide","hideMiddleware","getOverflowAncestors","defaultOptions","ancestorScroll","ancestorResize","elementResize","animationFrame","autoUpdateFloatingElement","reference","floating","update","options","restOptions","canUseResizeObserver","window","ResizeObserver","undefined","autoUpdateLibDisposer","observer","observe","appendToTheDOM","disconnect"],"mappings":"AAAA,SACEA,cAAcC,aAAa,QAItB,wCAAwC;AAC/C,SAASC,aAAa,QAAQ,YAAS;AACvC,SAASC,oBAAoB,QAAQ,4BAAyB;AAE9D,SACEC,WAAW,EACXC,UAAUC,gBAAgB,EAC1BC,QAAQC,cAAc,EACtBC,SAASC,eAAe,EACxBC,iBAAiBC,uBAAuB,EACxCC,SAASC,eAAe,EACxBC,QAAQC,cAAc,EACtBC,QAAQC,cAAc,EACtBC,oBAAoB,QACf,wCAAwC;AAE/C,MAAMC,iBAAiB;IACrBC,gBAAgB;IAChBC,gBAAgB;IAChB,oFAAoF;IACpF,kHAAkH;IAClH,iIAAiI;IACjIC,eAAe;IACfC,gBAAgB;AAClB;AAEA,OAAO,SAASC,0BACdC,SAAwB,EACxBC,QAAyB,EACzBC,MAAkB,EAClBC,UAAsCT,cAAc;IAEpD,MAAM,EAAEG,gBAAgB,KAAK,EAAE,GAAGO,aAAa,GAAGD;IAElD,gEAAgE;IAChE,MAAME,uBAAuBC,OAAOC,cAAc,KAAKC;IACvD,MAAMC,wBAAwBlC,cAAcyB,WAAWC,UAAUC,QAAQ;QACvE,GAAGE,WAAW;QACdP,eAAeA,iBAAiBQ;IAClC;IAEA,kHAAkH;IAClH,gCAAgC;IAChC,IAAIK,WAAwC;IAC5C,IAAIb,iBAAiB,CAACQ,sBAAsB;QAC1CK,WAAW,IAAIjC,qBAAqByB;QAEpC,IAAI1B,cAAcwB,YAAY;YAC5BU,SAASC,OAAO,CAACX;QACnB;QAEAU,SAASC,OAAO,CAACV;QAEjBS,SAASE,cAAc;IACzB;IAEA,OAAO;QACL,IAAIF,UAAU;YACZA,SAASG,UAAU;YACnBH,WAAW;QACb;QACAD;IACF;AACF"}
1
+ {"version":3,"sources":["../../../../src/lib/floating/adapters.ts"],"sourcesContent":["import {\n autoUpdate as autoUpdateLib,\n type AutoUpdateOptions,\n type FloatingElement,\n type ReferenceType,\n} from '@vkontakte/vkui-floating-ui/react-dom';\nimport { isHTMLElement } from '../dom';\nimport { CustomResizeObserver } from './customResizeObserver';\n\nexport {\n useFloating,\n offset as offsetMiddleware,\n flip as flipMiddleware,\n shift as shiftMiddleware,\n autoPlacement as autoPlacementMiddleware,\n arrow as arrowMiddleware,\n size as sizeMiddleware,\n hide as hideMiddleware,\n getOverflowAncestors,\n} from '@vkontakte/vkui-floating-ui/react-dom';\n\nexport type { FlipOptions as FlipMiddlewareOptions } from '@vkontakte/vkui-floating-ui/react-dom';\n\nconst defaultOptions = {\n ancestorScroll: true,\n ancestorResize: true,\n // По умолчанию отключаем, т.к. навешивать `CustomResizeObserver` может быть дорого.\n // В `autoUpdateLib` по умолчанию опция включена. Там используется ResizeObserver, но и он не менее дорогостоящий.\n // https://github.com/floating-ui/floating-ui/blob/0a34fe9cc2c7483976785a71bd0777cd7c3f2a6a/packages/dom/src/autoUpdate.ts#L6-L33\n elementResize: false,\n animationFrame: false,\n};\n\nexport function autoUpdateFloatingElement(\n reference: ReferenceType,\n floating: FloatingElement,\n update: () => void,\n options: Partial<AutoUpdateOptions> = defaultOptions,\n): ReturnType<typeof autoUpdateLib> {\n const { elementResize = false, ...restOptions } = options;\n\n // eslint-disable-next-line no-restricted-globals, compat/compat\n const canUseResizeObserver = window.ResizeObserver !== undefined;\n const autoUpdateLibDisposer = autoUpdateLib(reference, floating, update, {\n ...restOptions,\n elementResize: elementResize && canUseResizeObserver,\n });\n\n // В случае если `ResizeObserver` будет полифилиться или он будет покрываться нашим `browserlist`, то надо удалить\n // код с `CustomResizeObserver`.\n let observer: CustomResizeObserver | null = null;\n if (elementResize && !canUseResizeObserver) {\n observer = new CustomResizeObserver(update);\n\n if (isHTMLElement(reference)) {\n observer.observe(reference);\n }\n\n observer.observe(floating);\n\n observer.appendToTheDOM();\n }\n\n return () => {\n if (observer) {\n observer.disconnect();\n observer = null;\n }\n autoUpdateLibDisposer();\n };\n}\n"],"names":["autoUpdate","autoUpdateLib","isHTMLElement","CustomResizeObserver","useFloating","offset","offsetMiddleware","flip","flipMiddleware","shift","shiftMiddleware","autoPlacement","autoPlacementMiddleware","arrow","arrowMiddleware","size","sizeMiddleware","hide","hideMiddleware","getOverflowAncestors","defaultOptions","ancestorScroll","ancestorResize","elementResize","animationFrame","autoUpdateFloatingElement","reference","floating","update","options","restOptions","canUseResizeObserver","window","ResizeObserver","undefined","autoUpdateLibDisposer","observer","observe","appendToTheDOM","disconnect"],"mappings":"AAAA,SACEA,cAAcC,aAAa,QAItB,wCAAwC;AAC/C,SAASC,aAAa,QAAQ,YAAS;AACvC,SAASC,oBAAoB,QAAQ,4BAAyB;AAE9D,SACEC,WAAW,EACXC,UAAUC,gBAAgB,EAC1BC,QAAQC,cAAc,EACtBC,SAASC,eAAe,EACxBC,iBAAiBC,uBAAuB,EACxCC,SAASC,eAAe,EACxBC,QAAQC,cAAc,EACtBC,QAAQC,cAAc,EACtBC,oBAAoB,QACf,wCAAwC;AAI/C,MAAMC,iBAAiB;IACrBC,gBAAgB;IAChBC,gBAAgB;IAChB,oFAAoF;IACpF,kHAAkH;IAClH,iIAAiI;IACjIC,eAAe;IACfC,gBAAgB;AAClB;AAEA,OAAO,SAASC,0BACdC,SAAwB,EACxBC,QAAyB,EACzBC,MAAkB,EAClBC,UAAsCT,cAAc;IAEpD,MAAM,EAAEG,gBAAgB,KAAK,EAAE,GAAGO,aAAa,GAAGD;IAElD,gEAAgE;IAChE,MAAME,uBAAuBC,OAAOC,cAAc,KAAKC;IACvD,MAAMC,wBAAwBlC,cAAcyB,WAAWC,UAAUC,QAAQ;QACvE,GAAGE,WAAW;QACdP,eAAeA,iBAAiBQ;IAClC;IAEA,kHAAkH;IAClH,gCAAgC;IAChC,IAAIK,WAAwC;IAC5C,IAAIb,iBAAiB,CAACQ,sBAAsB;QAC1CK,WAAW,IAAIjC,qBAAqByB;QAEpC,IAAI1B,cAAcwB,YAAY;YAC5BU,SAASC,OAAO,CAACX;QACnB;QAEAU,SAASC,OAAO,CAACV;QAEjBS,SAASE,cAAc;IACzB;IAEA,OAAO;QACL,IAAIF,UAAU;YACZA,SAASG,UAAU;YACnBH,WAAW;QACb;QACAD;IACF;AACF"}
@@ -24,14 +24,11 @@ const defaultIframeStyles = {
24
24
  *
25
25
  * Применяется только если нету поддержики или полифила ResizeObserver.
26
26
  * */ export class CustomResizeObserver {
27
+ records = [];
28
+ mutationObserverFallback = null;
27
29
  updateFunction;
28
- records;
29
- mutationObserverFallback;
30
30
  constructor(updateFunction){
31
31
  this.updateFunction = updateFunction;
32
- this.records = [];
33
- this.mutationObserverFallback = null;
34
- this.updateFunction = updateFunction;
35
32
  }
36
33
  observe(element) {
37
34
  if (isPositioned(element)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/floating/customResizeObserver.ts"],"sourcesContent":["const defaultIframeStyles: Pick<\n CSSStyleDeclaration,\n | 'position'\n | 'left'\n | 'top'\n | 'zIndex'\n | 'width'\n | 'height'\n | 'pointerEvents'\n | 'opacity'\n | 'border'\n> = {\n position: 'absolute',\n left: '0',\n top: '0',\n zIndex: '-1',\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n opacity: '0',\n border: '0',\n};\n\n/*\n * Специальный CustomResizeObserver как fallback для ResizeObserver\n * Используется для вызова update() функции (перерисовка плавающего окна) floating-ui\n * при изменении размера reference или floating элементов.\n *\n * По умолчанию пытаемся нарисовать скрытый, абсолютно позиционированный относительно\n * наблюдаемого элемента iframe.\n * В случае же, если наблюдаемый элемент имеет position: static, то правильно спозиционировать\n * iframe у нас не получится, поэтому в такой ситуации мы используем MutationObserver.\n *\n * Использовать только MutationObserver мы не можем, потому что с помощью него нельзя отследить\n * изменение размера вызванное переполнением текста.\n *\n * Применяется только если нету поддержики или полифила ResizeObserver.\n * */\nexport class CustomResizeObserver {\n records: Array<{\n target: HTMLElement;\n iframe: HTMLIFrameElement;\n }> = [];\n mutationObserverFallback: MutationObserver | null = null;\n\n constructor(private readonly updateFunction: () => void) {\n this.updateFunction = updateFunction;\n }\n\n observe(element: HTMLElement): void {\n if (isPositioned(element)) {\n return this.observeUsingIframe(element);\n }\n return this.observeUsingMutationObserver(element);\n }\n\n appendToTheDOM(): void {\n for (let record of this.records) {\n record.target.appendChild(record.iframe);\n }\n\n for (let record of this.records) {\n if (record.iframe.contentWindow) {\n record.iframe.contentWindow.addEventListener('resize', this.updateFunction);\n }\n }\n }\n\n observeUsingIframe(element: HTMLElement): void {\n const iframe = element.ownerDocument.createElement('iframe');\n iframe.ariaHidden = 'true';\n iframe.tabIndex = -1;\n Object.assign(iframe.style, defaultIframeStyles);\n\n this.records.push({ target: element, iframe });\n }\n\n observeUsingMutationObserver(element: HTMLElement): void {\n if (!this.mutationObserverFallback) {\n this.mutationObserverFallback = new MutationObserver(this.updateFunction);\n }\n\n this.mutationObserverFallback.observe(element, {\n childList: true,\n subtree: true,\n });\n }\n\n disconnect(): void {\n this.records.map(({ target, iframe }) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.removeEventListener('resize', this.updateFunction);\n }\n\n target.removeChild(iframe);\n });\n this.records = [];\n\n if (this.mutationObserverFallback) {\n this.mutationObserverFallback.disconnect();\n }\n this.mutationObserverFallback = null;\n }\n}\n\nfunction isPositioned(element: HTMLElement): boolean {\n return getComputedStyle(element).position !== 'static';\n}\n"],"names":["defaultIframeStyles","position","left","top","zIndex","width","height","pointerEvents","opacity","border","CustomResizeObserver","records","mutationObserverFallback","constructor","updateFunction","observe","element","isPositioned","observeUsingIframe","observeUsingMutationObserver","appendToTheDOM","record","target","appendChild","iframe","contentWindow","addEventListener","ownerDocument","createElement","ariaHidden","tabIndex","Object","assign","style","push","MutationObserver","childList","subtree","disconnect","map","removeEventListener","removeChild","getComputedStyle"],"mappings":"AAAA,MAAMA,sBAWF;IACFC,UAAU;IACVC,MAAM;IACNC,KAAK;IACLC,QAAQ;IACRC,OAAO;IACPC,QAAQ;IACRC,eAAe;IACfC,SAAS;IACTC,QAAQ;AACV;AAEA;;;;;;;;;;;;;;GAcG,GACH,OAAO,MAAMC;;IACXC,QAGQ;IACRC,yBAAyD;IAEzDC,YAAY,AAAiBC,cAA0B,CAAE;aAA5BA,iBAAAA;aAN7BH,UAGK,EAAE;aACPC,2BAAoD;QAGlD,IAAI,CAACE,cAAc,GAAGA;IACxB;IAEAC,QAAQC,OAAoB,EAAQ;QAClC,IAAIC,aAAaD,UAAU;YACzB,OAAO,IAAI,CAACE,kBAAkB,CAACF;QACjC;QACA,OAAO,IAAI,CAACG,4BAA4B,CAACH;IAC3C;IAEAI,iBAAuB;QACrB,KAAK,IAAIC,UAAU,IAAI,CAACV,OAAO,CAAE;YAC/BU,OAAOC,MAAM,CAACC,WAAW,CAACF,OAAOG,MAAM;QACzC;QAEA,KAAK,IAAIH,UAAU,IAAI,CAACV,OAAO,CAAE;YAC/B,IAAIU,OAAOG,MAAM,CAACC,aAAa,EAAE;gBAC/BJ,OAAOG,MAAM,CAACC,aAAa,CAACC,gBAAgB,CAAC,UAAU,IAAI,CAACZ,cAAc;YAC5E;QACF;IACF;IAEAI,mBAAmBF,OAAoB,EAAQ;QAC7C,MAAMQ,SAASR,QAAQW,aAAa,CAACC,aAAa,CAAC;QACnDJ,OAAOK,UAAU,GAAG;QACpBL,OAAOM,QAAQ,GAAG,CAAC;QACnBC,OAAOC,MAAM,CAACR,OAAOS,KAAK,EAAEjC;QAE5B,IAAI,CAACW,OAAO,CAACuB,IAAI,CAAC;YAAEZ,QAAQN;YAASQ;QAAO;IAC9C;IAEAL,6BAA6BH,OAAoB,EAAQ;QACvD,IAAI,CAAC,IAAI,CAACJ,wBAAwB,EAAE;YAClC,IAAI,CAACA,wBAAwB,GAAG,IAAIuB,iBAAiB,IAAI,CAACrB,cAAc;QAC1E;QAEA,IAAI,CAACF,wBAAwB,CAACG,OAAO,CAACC,SAAS;YAC7CoB,WAAW;YACXC,SAAS;QACX;IACF;IAEAC,aAAmB;QACjB,IAAI,CAAC3B,OAAO,CAAC4B,GAAG,CAAC,CAAC,EAAEjB,MAAM,EAAEE,MAAM,EAAE;YAClC,IAAIA,OAAOC,aAAa,EAAE;gBACxBD,OAAOC,aAAa,CAACe,mBAAmB,CAAC,UAAU,IAAI,CAAC1B,cAAc;YACxE;YAEAQ,OAAOmB,WAAW,CAACjB;QACrB;QACA,IAAI,CAACb,OAAO,GAAG,EAAE;QAEjB,IAAI,IAAI,CAACC,wBAAwB,EAAE;YACjC,IAAI,CAACA,wBAAwB,CAAC0B,UAAU;QAC1C;QACA,IAAI,CAAC1B,wBAAwB,GAAG;IAClC;AACF;AAEA,SAASK,aAAaD,OAAoB;IACxC,OAAO0B,iBAAiB1B,SAASf,QAAQ,KAAK;AAChD"}
1
+ {"version":3,"sources":["../../../../src/lib/floating/customResizeObserver.ts"],"sourcesContent":["const defaultIframeStyles: Pick<\n CSSStyleDeclaration,\n | 'position'\n | 'left'\n | 'top'\n | 'zIndex'\n | 'width'\n | 'height'\n | 'pointerEvents'\n | 'opacity'\n | 'border'\n> = {\n position: 'absolute',\n left: '0',\n top: '0',\n zIndex: '-1',\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n opacity: '0',\n border: '0',\n};\n\n/*\n * Специальный CustomResizeObserver как fallback для ResizeObserver\n * Используется для вызова update() функции (перерисовка плавающего окна) floating-ui\n * при изменении размера reference или floating элементов.\n *\n * По умолчанию пытаемся нарисовать скрытый, абсолютно позиционированный относительно\n * наблюдаемого элемента iframe.\n * В случае же, если наблюдаемый элемент имеет position: static, то правильно спозиционировать\n * iframe у нас не получится, поэтому в такой ситуации мы используем MutationObserver.\n *\n * Использовать только MutationObserver мы не можем, потому что с помощью него нельзя отследить\n * изменение размера вызванное переполнением текста.\n *\n * Применяется только если нету поддержики или полифила ResizeObserver.\n * */\nexport class CustomResizeObserver {\n records: Array<{\n target: HTMLElement;\n iframe: HTMLIFrameElement;\n }> = [];\n mutationObserverFallback: MutationObserver | null = null;\n private readonly updateFunction: () => void;\n\n constructor(updateFunction: () => void) {\n this.updateFunction = updateFunction;\n }\n\n observe(element: HTMLElement): void {\n if (isPositioned(element)) {\n return this.observeUsingIframe(element);\n }\n return this.observeUsingMutationObserver(element);\n }\n\n appendToTheDOM(): void {\n for (let record of this.records) {\n record.target.appendChild(record.iframe);\n }\n\n for (let record of this.records) {\n if (record.iframe.contentWindow) {\n record.iframe.contentWindow.addEventListener('resize', this.updateFunction);\n }\n }\n }\n\n observeUsingIframe(element: HTMLElement): void {\n const iframe = element.ownerDocument.createElement('iframe');\n iframe.ariaHidden = 'true';\n iframe.tabIndex = -1;\n Object.assign(iframe.style, defaultIframeStyles);\n\n this.records.push({ target: element, iframe });\n }\n\n observeUsingMutationObserver(element: HTMLElement): void {\n if (!this.mutationObserverFallback) {\n this.mutationObserverFallback = new MutationObserver(this.updateFunction);\n }\n\n this.mutationObserverFallback.observe(element, {\n childList: true,\n subtree: true,\n });\n }\n\n disconnect(): void {\n this.records.map(({ target, iframe }) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.removeEventListener('resize', this.updateFunction);\n }\n\n target.removeChild(iframe);\n });\n this.records = [];\n\n if (this.mutationObserverFallback) {\n this.mutationObserverFallback.disconnect();\n }\n this.mutationObserverFallback = null;\n }\n}\n\nfunction isPositioned(element: HTMLElement): boolean {\n return getComputedStyle(element).position !== 'static';\n}\n"],"names":["defaultIframeStyles","position","left","top","zIndex","width","height","pointerEvents","opacity","border","CustomResizeObserver","records","mutationObserverFallback","updateFunction","constructor","observe","element","isPositioned","observeUsingIframe","observeUsingMutationObserver","appendToTheDOM","record","target","appendChild","iframe","contentWindow","addEventListener","ownerDocument","createElement","ariaHidden","tabIndex","Object","assign","style","push","MutationObserver","childList","subtree","disconnect","map","removeEventListener","removeChild","getComputedStyle"],"mappings":"AAAA,MAAMA,sBAWF;IACFC,UAAU;IACVC,MAAM;IACNC,KAAK;IACLC,QAAQ;IACRC,OAAO;IACPC,QAAQ;IACRC,eAAe;IACfC,SAAS;IACTC,QAAQ;AACV;AAEA;;;;;;;;;;;;;;GAcG,GACH,OAAO,MAAMC;IACXC,UAGK,EAAE,CAAC;IACRC,2BAAoD,KAAK;IACxCC,eAA2B;IAE5CC,YAAYD,cAA0B,CAAE;QACtC,IAAI,CAACA,cAAc,GAAGA;IACxB;IAEAE,QAAQC,OAAoB,EAAQ;QAClC,IAAIC,aAAaD,UAAU;YACzB,OAAO,IAAI,CAACE,kBAAkB,CAACF;QACjC;QACA,OAAO,IAAI,CAACG,4BAA4B,CAACH;IAC3C;IAEAI,iBAAuB;QACrB,KAAK,IAAIC,UAAU,IAAI,CAACV,OAAO,CAAE;YAC/BU,OAAOC,MAAM,CAACC,WAAW,CAACF,OAAOG,MAAM;QACzC;QAEA,KAAK,IAAIH,UAAU,IAAI,CAACV,OAAO,CAAE;YAC/B,IAAIU,OAAOG,MAAM,CAACC,aAAa,EAAE;gBAC/BJ,OAAOG,MAAM,CAACC,aAAa,CAACC,gBAAgB,CAAC,UAAU,IAAI,CAACb,cAAc;YAC5E;QACF;IACF;IAEAK,mBAAmBF,OAAoB,EAAQ;QAC7C,MAAMQ,SAASR,QAAQW,aAAa,CAACC,aAAa,CAAC;QACnDJ,OAAOK,UAAU,GAAG;QACpBL,OAAOM,QAAQ,GAAG,CAAC;QACnBC,OAAOC,MAAM,CAACR,OAAOS,KAAK,EAAEjC;QAE5B,IAAI,CAACW,OAAO,CAACuB,IAAI,CAAC;YAAEZ,QAAQN;YAASQ;QAAO;IAC9C;IAEAL,6BAA6BH,OAAoB,EAAQ;QACvD,IAAI,CAAC,IAAI,CAACJ,wBAAwB,EAAE;YAClC,IAAI,CAACA,wBAAwB,GAAG,IAAIuB,iBAAiB,IAAI,CAACtB,cAAc;QAC1E;QAEA,IAAI,CAACD,wBAAwB,CAACG,OAAO,CAACC,SAAS;YAC7CoB,WAAW;YACXC,SAAS;QACX;IACF;IAEAC,aAAmB;QACjB,IAAI,CAAC3B,OAAO,CAAC4B,GAAG,CAAC,CAAC,EAAEjB,MAAM,EAAEE,MAAM,EAAE;YAClC,IAAIA,OAAOC,aAAa,EAAE;gBACxBD,OAAOC,aAAa,CAACe,mBAAmB,CAAC,UAAU,IAAI,CAAC3B,cAAc;YACxE;YAEAS,OAAOmB,WAAW,CAACjB;QACrB;QACA,IAAI,CAACb,OAAO,GAAG,EAAE;QAEjB,IAAI,IAAI,CAACC,wBAAwB,EAAE;YACjC,IAAI,CAACA,wBAAwB,CAAC0B,UAAU;QAC1C;QACA,IAAI,CAAC1B,wBAAwB,GAAG;IAClC;AACF;AAEA,SAASK,aAAaD,OAAoB;IACxC,OAAO0B,iBAAiB1B,SAASf,QAAQ,KAAK;AAChD"}
@@ -9,7 +9,7 @@ export function getAutoPlacementAlign(placement) {
9
9
  * Note: не используем `translate3d`, чтобы в лишний раз не выносить в отдельный слой и не занимать память в GPU.
10
10
  *
11
11
  * см. https://floating-ui.com/docs/react#positioning
12
- */ export function convertFloatingDataToReactCSSProperties(strategy, x, y, initialWidth = 'max-content', middlewareData) {
12
+ */ export function convertFloatingDataToReactCSSProperties({ strategy, x, y, initialWidth = 'max-content', middlewareData }) {
13
13
  const styles = {
14
14
  position: strategy,
15
15
  top: y,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/floating/functions.ts"],"sourcesContent":["import type * as React from 'react';\nimport type {\n AutoPlacementType,\n FloatingPositionStrategy,\n Placement,\n PlacementWithAuto,\n UseFloatingData,\n} from './types/common';\n\nexport function checkIsNotAutoPlacement(placement: PlacementWithAuto): placement is Placement {\n return !placement.startsWith('auto');\n}\n\nexport function getAutoPlacementAlign(placement: AutoPlacementType): 'start' | 'end' | null {\n const align = placement.replace(/auto-|auto/, '');\n return align === 'start' || align === 'end' ? align : null;\n}\n\n/**\n * Note: не используем `translate3d`, чтобы в лишний раз не выносить в отдельный слой и не занимать память в GPU.\n *\n * см. https://floating-ui.com/docs/react#positioning\n */\nexport function convertFloatingDataToReactCSSProperties(\n strategy: FloatingPositionStrategy,\n x: UseFloatingData['x'],\n y: UseFloatingData['y'],\n initialWidth: React.CSSProperties['width'] | null = 'max-content',\n middlewareData?: UseFloatingData['middlewareData'],\n): React.CSSProperties {\n const styles: React.CSSProperties = {\n position: strategy,\n top: y,\n right: 'auto',\n bottom: 'auto',\n left: x,\n };\n if (initialWidth !== null) {\n styles.width = initialWidth;\n }\n if (middlewareData) {\n const hide = middlewareData.hide;\n if (hide && hide.referenceHidden) {\n styles['visibility'] = 'hidden';\n }\n }\n return styles;\n}\n\nexport const getArrowCoordsByMiddlewareData = (\n middlewareData: UseFloatingData['middlewareData'],\n): {\n x: number;\n y: number;\n} => {\n const coords = { x: 0, y: 0 };\n if (middlewareData.arrow) {\n const { x = 0, y = 0 } = middlewareData.arrow;\n coords.x = x;\n coords.y = y;\n }\n return coords;\n};\n"],"names":["checkIsNotAutoPlacement","placement","startsWith","getAutoPlacementAlign","align","replace","convertFloatingDataToReactCSSProperties","strategy","x","y","initialWidth","middlewareData","styles","position","top","right","bottom","left","width","hide","referenceHidden","getArrowCoordsByMiddlewareData","coords","arrow"],"mappings":"AASA,OAAO,SAASA,wBAAwBC,SAA4B;IAClE,OAAO,CAACA,UAAUC,UAAU,CAAC;AAC/B;AAEA,OAAO,SAASC,sBAAsBF,SAA4B;IAChE,MAAMG,QAAQH,UAAUI,OAAO,CAAC,cAAc;IAC9C,OAAOD,UAAU,WAAWA,UAAU,QAAQA,QAAQ;AACxD;AAEA;;;;CAIC,GACD,OAAO,SAASE,wCACdC,QAAkC,EAClCC,CAAuB,EACvBC,CAAuB,EACvBC,eAAoD,aAAa,EACjEC,cAAkD;IAElD,MAAMC,SAA8B;QAClCC,UAAUN;QACVO,KAAKL;QACLM,OAAO;QACPC,QAAQ;QACRC,MAAMT;IACR;IACA,IAAIE,iBAAiB,MAAM;QACzBE,OAAOM,KAAK,GAAGR;IACjB;IACA,IAAIC,gBAAgB;QAClB,MAAMQ,OAAOR,eAAeQ,IAAI;QAChC,IAAIA,QAAQA,KAAKC,eAAe,EAAE;YAChCR,MAAM,CAAC,aAAa,GAAG;QACzB;IACF;IACA,OAAOA;AACT;AAEA,OAAO,MAAMS,iCAAiC,CAC5CV;IAKA,MAAMW,SAAS;QAAEd,GAAG;QAAGC,GAAG;IAAE;IAC5B,IAAIE,eAAeY,KAAK,EAAE;QACxB,MAAM,EAAEf,IAAI,CAAC,EAAEC,IAAI,CAAC,EAAE,GAAGE,eAAeY,KAAK;QAC7CD,OAAOd,CAAC,GAAGA;QACXc,OAAOb,CAAC,GAAGA;IACb;IACA,OAAOa;AACT,EAAE"}
1
+ {"version":3,"sources":["../../../../src/lib/floating/functions.ts"],"sourcesContent":["import type * as React from 'react';\nimport type {\n AutoPlacementType,\n FloatingPositionStrategy,\n Placement,\n PlacementWithAuto,\n UseFloatingData,\n} from './types/common';\n\nexport function checkIsNotAutoPlacement(placement: PlacementWithAuto): placement is Placement {\n return !placement.startsWith('auto');\n}\n\nexport function getAutoPlacementAlign(placement: AutoPlacementType): 'start' | 'end' | null {\n const align = placement.replace(/auto-|auto/, '');\n return align === 'start' || align === 'end' ? align : null;\n}\n\nexport type ConvertFloatingDataArgs = {\n strategy: FloatingPositionStrategy;\n x: UseFloatingData['x'];\n y: UseFloatingData['y'];\n initialWidth?: React.CSSProperties['width'] | null;\n middlewareData?: UseFloatingData['middlewareData'];\n};\n\n/**\n * Note: не используем `translate3d`, чтобы в лишний раз не выносить в отдельный слой и не занимать память в GPU.\n *\n * см. https://floating-ui.com/docs/react#positioning\n */\nexport function convertFloatingDataToReactCSSProperties({\n strategy,\n x,\n y,\n initialWidth = 'max-content',\n middlewareData,\n}: ConvertFloatingDataArgs): React.CSSProperties {\n const styles: React.CSSProperties = {\n position: strategy,\n top: y,\n right: 'auto',\n bottom: 'auto',\n left: x,\n };\n if (initialWidth !== null) {\n styles.width = initialWidth;\n }\n if (middlewareData) {\n const hide = middlewareData.hide;\n if (hide && hide.referenceHidden) {\n styles['visibility'] = 'hidden';\n }\n }\n return styles;\n}\n\nexport const getArrowCoordsByMiddlewareData = (\n middlewareData: UseFloatingData['middlewareData'],\n): {\n x: number;\n y: number;\n} => {\n const coords = { x: 0, y: 0 };\n if (middlewareData.arrow) {\n const { x = 0, y = 0 } = middlewareData.arrow;\n coords.x = x;\n coords.y = y;\n }\n return coords;\n};\n"],"names":["checkIsNotAutoPlacement","placement","startsWith","getAutoPlacementAlign","align","replace","convertFloatingDataToReactCSSProperties","strategy","x","y","initialWidth","middlewareData","styles","position","top","right","bottom","left","width","hide","referenceHidden","getArrowCoordsByMiddlewareData","coords","arrow"],"mappings":"AASA,OAAO,SAASA,wBAAwBC,SAA4B;IAClE,OAAO,CAACA,UAAUC,UAAU,CAAC;AAC/B;AAEA,OAAO,SAASC,sBAAsBF,SAA4B;IAChE,MAAMG,QAAQH,UAAUI,OAAO,CAAC,cAAc;IAC9C,OAAOD,UAAU,WAAWA,UAAU,QAAQA,QAAQ;AACxD;AAUA;;;;CAIC,GACD,OAAO,SAASE,wCAAwC,EACtDC,QAAQ,EACRC,CAAC,EACDC,CAAC,EACDC,eAAe,aAAa,EAC5BC,cAAc,EACU;IACxB,MAAMC,SAA8B;QAClCC,UAAUN;QACVO,KAAKL;QACLM,OAAO;QACPC,QAAQ;QACRC,MAAMT;IACR;IACA,IAAIE,iBAAiB,MAAM;QACzBE,OAAOM,KAAK,GAAGR;IACjB;IACA,IAAIC,gBAAgB;QAClB,MAAMQ,OAAOR,eAAeQ,IAAI;QAChC,IAAIA,QAAQA,KAAKC,eAAe,EAAE;YAChCR,MAAM,CAAC,aAAa,GAAG;QACzB;IACF;IACA,OAAOA;AACT;AAEA,OAAO,MAAMS,iCAAiC,CAC5CV;IAKA,MAAMW,SAAS;QAAEd,GAAG;QAAGC,GAAG;IAAE;IAC5B,IAAIE,eAAeY,KAAK,EAAE;QACxB,MAAM,EAAEf,IAAI,CAAC,EAAEC,IAAI,CAAC,EAAE,GAAGE,eAAeY,KAAK;QAC7CD,OAAOd,CAAC,GAAGA;QACXc,OAAOb,CAAC,GAAGA;IACb;IACA,OAAOa;AACT,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/lib/floating/types/component.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { UseFloatingMiddlewaresBootstrapOptions } from '../useFloatingMiddlewaresBootstrap';\nimport type {\n RestoreFocusType,\n UseFloatingWithInteractionsProps,\n UseFloatingWithInteractionsReturn,\n} from '../useFloatingWithInteractions';\nimport type { OnPlacementChange } from './common';\n\n/**\n * @private используйте алиасы, если для какого-то компонента нужно экспортировать тип\n */\nexport type FloatingContentRenderProp = (\n props: Pick<UseFloatingWithInteractionsReturn, 'onClose'>,\n) => React.ReactNode;\n\n/**\n * Общий API для всплывающих элементов.\n *\n * @private\n */\nexport interface FloatingComponentProps\n extends UseFloatingMiddlewaresBootstrapOptions,\n Omit<UseFloatingWithInteractionsProps, 'placement' | 'middlewares'> {\n /**\n * Содержимое всплывающего окна.\n *\n * При передаче контента в виде [render prop](https://react.dev/reference/react/cloneElement#passing-data-with-a-render-prop),\n * в аргументе функции можно получить метод `onClose`, с помощью которого можно программно закрывать\n * всплывающее окно.\n */\n content?: React.ReactNode | FloatingContentRenderProp;\n /**\n * Целевой элемент. Всплывающее окно появится возле него.\n *\n * > ⚠️ Если это пользовательский компонент, то он должен:\n * > 1. предоставлять параметры либо `getRootRef`, либо `ref` (cм. `React.forwardRef()`) для получения ссылки на DOM-узел;\n * > 2. принимать DOM атрибуты и события.\n */\n children?: React.ReactElement;\n /**\n * Нужно ли при навигации с клавиатуры авто-фокусироваться на всплывающий элемент.\n */\n autoFocus?: boolean;\n /**\n * Нужно ли после закрытия всплывающего элемента возвращать фокус на предыдущий активный элемент.\n */\n restoreFocus?: RestoreFocusType;\n /**\n * Перебивает zIndex заданный по умолчанию.\n */\n zIndex?: number | string;\n /**\n * По умолчанию используется document.body.\n */\n usePortal?: boolean | HTMLElement | React.RefObject<HTMLElement>;\n /**\n * В зависимости от области видимости, позиция может смениться на более оптимальную,\n * чтобы всплывающий элемент вместился в эту область видимости.\n */\n onPlacementChange?: OnPlacementChange;\n}\n"],"names":[],"mappings":"AAgBA;;;;CAIC,GACD,WAwCC"}
1
+ {"version":3,"sources":["../../../../../src/lib/floating/types/component.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { UseFloatingMiddlewaresBootstrapOptions } from '../useFloatingMiddlewaresBootstrap';\nimport type {\n RestoreFocusType,\n UseFloatingWithInteractionsProps,\n UseFloatingWithInteractionsReturn,\n} from '../useFloatingWithInteractions';\nimport type { OnPlacementChange } from './common';\n\n/**\n * @private используйте алиасы, если для какого-то компонента нужно экспортировать тип\n */\nexport type FloatingContentRenderProp = (\n props: Pick<UseFloatingWithInteractionsReturn, 'onClose'>,\n) => React.ReactNode;\n\n/**\n * Общий API для всплывающих элементов.\n *\n * @private\n */\nexport interface FloatingComponentProps\n extends UseFloatingMiddlewaresBootstrapOptions,\n Omit<UseFloatingWithInteractionsProps, 'placement' | 'middlewares'> {\n /**\n * Содержимое всплывающего окна.\n *\n * При передаче контента в виде [render prop](https://react.dev/reference/react/cloneElement#passing-data-with-a-render-prop),\n * в аргументе функции можно получить метод `onClose`, с помощью которого можно программно закрывать\n * всплывающее окно.\n */\n content?: React.ReactNode | FloatingContentRenderProp;\n /**\n * Целевой элемент. Всплывающее окно появится возле него.\n *\n * > ⚠️ Если это пользовательский компонент, то он должен:\n * > 1. предоставлять параметры либо `getRootRef`, либо `ref` (cм. `React.forwardRef()`) для получения ссылки на DOM-узел;\n * > 2. принимать DOM атрибуты и события.\n */\n children?: React.ReactElement;\n /**\n * Нужно ли при навигации с клавиатуры авто-фокусироваться на всплывающий элемент.\n */\n autoFocus?: boolean;\n /**\n * Нужно ли после закрытия всплывающего элемента возвращать фокус на предыдущий активный элемент.\n */\n restoreFocus?: RestoreFocusType;\n /**\n * Перебивает zIndex заданный по умолчанию.\n */\n zIndex?: number | string;\n /**\n * По умолчанию используется document.body.\n */\n usePortal?: boolean | HTMLElement | React.RefObject<HTMLElement>;\n /**\n * В зависимости от области видимости, позиция может смениться на более оптимальную,\n * чтобы всплывающий элемент вместился в эту область видимости.\n */\n onPlacementChange?: OnPlacementChange;\n /**\n * Событие скрытия / раскрытия компонента при использовании свойства `hideWhenReferenceHidden`.\n *\n * > Стоит иметь ввиду, что событие также будет вызвано и при новом рендере компонента\n */\n onReferenceHiddenChange?: (hidden: boolean) => void;\n /**\n * Позволяет отключить захват фокуса.\n */\n disableFocusTrap?: boolean;\n}\n"],"names":[],"mappings":"AAgBA;;;;CAIC,GACD,WAkDC"}
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { arrowMiddleware, autoPlacementMiddleware, flipMiddleware, hideMiddleware, offsetMiddleware, shiftMiddleware, sizeMiddleware } from "../adapters.js";
3
3
  import { checkIsNotAutoPlacement, getAutoPlacementAlign } from "../functions.js";
4
- export const useFloatingMiddlewaresBootstrap = ({ placement = 'bottom-start', arrowRef = null, arrow, arrowHeight, arrowPadding, sameWidth, offsetByMainAxis = 0, offsetByCrossAxis = 0, customMiddlewares, hideWhenReferenceHidden, disableFlipMiddleware = false })=>{
4
+ export const useFloatingMiddlewaresBootstrap = ({ placement = 'bottom-start', arrowRef = null, arrow, arrowHeight, arrowPadding, sameWidth, offsetByMainAxis = 0, offsetByCrossAxis = 0, customMiddlewares, hideWhenReferenceHidden, disableFlipMiddleware = false, flipMiddlewareFallbackAxisSideDirection = 'start' })=>{
5
5
  return React.useMemo(()=>{
6
6
  const isAutoPlacement = !checkIsNotAutoPlacement(placement);
7
7
  const middlewares = [
@@ -17,7 +17,8 @@ export const useFloatingMiddlewaresBootstrap = ({ placement = 'bottom-start', ar
17
17
  }));
18
18
  } else if (!disableFlipMiddleware) {
19
19
  middlewares.push(flipMiddleware({
20
- fallbackAxisSideDirection: 'start'
20
+ fallbackAxisSideDirection: flipMiddlewareFallbackAxisSideDirection,
21
+ crossAxis: false
21
22
  }));
22
23
  }
23
24
  middlewares.push(shiftMiddleware());
@@ -54,6 +55,7 @@ export const useFloatingMiddlewaresBootstrap = ({ placement = 'bottom-start', ar
54
55
  arrowHeight,
55
56
  offsetByMainAxis,
56
57
  disableFlipMiddleware,
58
+ flipMiddlewareFallbackAxisSideDirection,
57
59
  sameWidth,
58
60
  customMiddlewares,
59
61
  hideWhenReferenceHidden,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n arrowMiddleware,\n autoPlacementMiddleware,\n flipMiddleware,\n hideMiddleware,\n offsetMiddleware,\n shiftMiddleware,\n sizeMiddleware,\n} from '../adapters';\nimport { checkIsNotAutoPlacement, getAutoPlacementAlign } from '../functions';\nimport {\n type ArrowOptions,\n type Placement,\n type PlacementWithAuto,\n type UseFloatingMiddleware,\n} from '../types/common';\n\nexport interface UseFloatingMiddlewaresBootstrapOptions {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам, но приоритетное можно задать с помощью этого свойства.\n */\n placement?: PlacementWithAuto;\n /**\n * Указанное значение `placement` форсируется, даже если для выпадающего элемента недостаточно места.\n * Не оказывает влияния при `placement` значениях - `'auto' | 'auto-start' | 'auto-end'`\n */\n disableFlipMiddleware?: boolean;\n /**\n * Отступ по главной оси.\n */\n offsetByMainAxis?: number;\n /**\n * Отступ по вспомогательной оси.\n */\n offsetByCrossAxis?: number;\n arrowRef?: ArrowOptions['element'];\n /**\n * Отображать ли стрелку, указывающую на якорный элемент.\n */\n arrow?: boolean;\n /**\n * Высота стрелки. Складывается с `mainAxis`, чтобы стрелка не залезала на якорный элемент.\n */\n arrowHeight?: number;\n /**\n * Безопасная зона вокруг стрелки, чтобы та не выходила за края контента.\n */\n arrowPadding?: number;\n /**\n * Выставлять ширину равной target элементу.\n */\n sameWidth?: boolean;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать).\n */\n customMiddlewares?: UseFloatingMiddleware[];\n /**\n * Принудительно скрывает компонент если целевой элемент вышел за область видимости.\n */\n hideWhenReferenceHidden?: boolean;\n}\n\nexport const useFloatingMiddlewaresBootstrap = ({\n placement = 'bottom-start',\n arrowRef = null,\n arrow,\n arrowHeight,\n arrowPadding,\n sameWidth,\n offsetByMainAxis = 0,\n offsetByCrossAxis = 0,\n customMiddlewares,\n hideWhenReferenceHidden,\n disableFlipMiddleware = false,\n}: UseFloatingMiddlewaresBootstrapOptions): {\n middlewares: UseFloatingMiddleware[];\n strictPlacement: Placement | undefined;\n} => {\n return React.useMemo(() => {\n const isAutoPlacement = !checkIsNotAutoPlacement(placement);\n const middlewares: UseFloatingMiddleware[] = [\n offsetMiddleware({\n crossAxis: offsetByCrossAxis,\n mainAxis: arrow && arrowHeight ? offsetByMainAxis + arrowHeight : offsetByMainAxis,\n }),\n ];\n\n // см. https://floating-ui.com/docs/flip#conflict-with-autoplacement\n if (isAutoPlacement) {\n middlewares.push(autoPlacementMiddleware({ alignment: getAutoPlacementAlign(placement) }));\n } else if (!disableFlipMiddleware) {\n middlewares.push(\n flipMiddleware({\n fallbackAxisSideDirection: 'start',\n }),\n );\n }\n\n middlewares.push(shiftMiddleware());\n\n if (sameWidth) {\n middlewares.push(\n sizeMiddleware({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n });\n },\n }),\n );\n }\n\n if (customMiddlewares) {\n middlewares.push(...customMiddlewares);\n }\n\n // см. https://floating-ui.com/docs/arrow#order\n if (arrow) {\n middlewares.push(\n arrowMiddleware({\n element: arrowRef,\n padding: arrowPadding,\n }),\n );\n }\n\n if (hideWhenReferenceHidden) {\n middlewares.push(hideMiddleware());\n }\n\n return { middlewares, strictPlacement: isAutoPlacement ? undefined : placement };\n }, [\n placement,\n offsetByCrossAxis,\n arrow,\n arrowHeight,\n offsetByMainAxis,\n disableFlipMiddleware,\n sameWidth,\n customMiddlewares,\n hideWhenReferenceHidden,\n arrowRef,\n arrowPadding,\n ]);\n};\n"],"names":["React","arrowMiddleware","autoPlacementMiddleware","flipMiddleware","hideMiddleware","offsetMiddleware","shiftMiddleware","sizeMiddleware","checkIsNotAutoPlacement","getAutoPlacementAlign","useFloatingMiddlewaresBootstrap","placement","arrowRef","arrow","arrowHeight","arrowPadding","sameWidth","offsetByMainAxis","offsetByCrossAxis","customMiddlewares","hideWhenReferenceHidden","disableFlipMiddleware","useMemo","isAutoPlacement","middlewares","crossAxis","mainAxis","push","alignment","fallbackAxisSideDirection","apply","rects","elements","Object","assign","floating","style","width","reference","element","padding","strictPlacement","undefined"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SACEC,eAAe,EACfC,uBAAuB,EACvBC,cAAc,EACdC,cAAc,EACdC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,QACT,iBAAc;AACrB,SAASC,uBAAuB,EAAEC,qBAAqB,QAAQ,kBAAe;AAqD9E,OAAO,MAAMC,kCAAkC,CAAC,EAC9CC,YAAY,cAAc,EAC1BC,WAAW,IAAI,EACfC,KAAK,EACLC,WAAW,EACXC,YAAY,EACZC,SAAS,EACTC,mBAAmB,CAAC,EACpBC,oBAAoB,CAAC,EACrBC,iBAAiB,EACjBC,uBAAuB,EACvBC,wBAAwB,KAAK,EACU;IAIvC,OAAOrB,MAAMsB,OAAO,CAAC;QACnB,MAAMC,kBAAkB,CAACf,wBAAwBG;QACjD,MAAMa,cAAuC;YAC3CnB,iBAAiB;gBACfoB,WAAWP;gBACXQ,UAAUb,SAASC,cAAcG,mBAAmBH,cAAcG;YACpE;SACD;QAED,oEAAoE;QACpE,IAAIM,iBAAiB;YACnBC,YAAYG,IAAI,CAACzB,wBAAwB;gBAAE0B,WAAWnB,sBAAsBE;YAAW;QACzF,OAAO,IAAI,CAACU,uBAAuB;YACjCG,YAAYG,IAAI,CACdxB,eAAe;gBACb0B,2BAA2B;YAC7B;QAEJ;QAEAL,YAAYG,IAAI,CAACrB;QAEjB,IAAIU,WAAW;YACbQ,YAAYG,IAAI,CACdpB,eAAe;gBACbuB,OAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAE;oBACvBC,OAAOC,MAAM,CAACF,SAASG,QAAQ,CAACC,KAAK,EAAE;wBACrCC,OAAO,GAAGN,MAAMO,SAAS,CAACD,KAAK,CAAC,EAAE,CAAC;oBACrC;gBACF;YACF;QAEJ;QAEA,IAAIlB,mBAAmB;YACrBK,YAAYG,IAAI,IAAIR;QACtB;QAEA,+CAA+C;QAC/C,IAAIN,OAAO;YACTW,YAAYG,IAAI,CACd1B,gBAAgB;gBACdsC,SAAS3B;gBACT4B,SAASzB;YACX;QAEJ;QAEA,IAAIK,yBAAyB;YAC3BI,YAAYG,IAAI,CAACvB;QACnB;QAEA,OAAO;YAAEoB;YAAaiB,iBAAiBlB,kBAAkBmB,YAAY/B;QAAU;IACjF,GAAG;QACDA;QACAO;QACAL;QACAC;QACAG;QACAI;QACAL;QACAG;QACAC;QACAR;QACAG;KACD;AACH,EAAE"}
1
+ {"version":3,"sources":["../../../../../src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n arrowMiddleware,\n autoPlacementMiddleware,\n flipMiddleware,\n type FlipMiddlewareOptions,\n hideMiddleware,\n offsetMiddleware,\n shiftMiddleware,\n sizeMiddleware,\n} from '../adapters';\nimport { checkIsNotAutoPlacement, getAutoPlacementAlign } from '../functions';\nimport {\n type ArrowOptions,\n type Placement,\n type PlacementWithAuto,\n type UseFloatingMiddleware,\n} from '../types/common';\n\nexport interface UseFloatingMiddlewaresBootstrapOptions {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам, но приоритетное можно задать с помощью этого свойства.\n */\n placement?: PlacementWithAuto;\n /**\n * Указанное значение `placement` форсируется, даже если для выпадающего элемента недостаточно места.\n * Не оказывает влияния при `placement` значениях - `'auto' | 'auto-start' | 'auto-end'`\n */\n disableFlipMiddleware?: boolean;\n flipMiddlewareFallbackAxisSideDirection?: FlipMiddlewareOptions['fallbackAxisSideDirection'];\n /**\n * Отступ по главной оси.\n */\n offsetByMainAxis?: number;\n /**\n * Отступ по вспомогательной оси.\n */\n offsetByCrossAxis?: number;\n arrowRef?: ArrowOptions['element'];\n /**\n * Отображать ли стрелку, указывающую на якорный элемент.\n */\n arrow?: boolean;\n /**\n * Высота стрелки. Складывается с `mainAxis`, чтобы стрелка не залезала на якорный элемент.\n */\n arrowHeight?: number;\n /**\n * Безопасная зона вокруг стрелки, чтобы та не выходила за края контента.\n */\n arrowPadding?: number;\n /**\n * Выставлять ширину равной target элементу.\n */\n sameWidth?: boolean;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать).\n */\n customMiddlewares?: UseFloatingMiddleware[];\n /**\n * Принудительно скрывает компонент если целевой элемент вышел за область видимости.\n */\n hideWhenReferenceHidden?: boolean;\n}\n\nexport const useFloatingMiddlewaresBootstrap = ({\n placement = 'bottom-start',\n arrowRef = null,\n arrow,\n arrowHeight,\n arrowPadding,\n sameWidth,\n offsetByMainAxis = 0,\n offsetByCrossAxis = 0,\n customMiddlewares,\n hideWhenReferenceHidden,\n disableFlipMiddleware = false,\n flipMiddlewareFallbackAxisSideDirection = 'start',\n}: UseFloatingMiddlewaresBootstrapOptions): {\n middlewares: UseFloatingMiddleware[];\n strictPlacement: Placement | undefined;\n} => {\n return React.useMemo(() => {\n const isAutoPlacement = !checkIsNotAutoPlacement(placement);\n const middlewares: UseFloatingMiddleware[] = [\n offsetMiddleware({\n crossAxis: offsetByCrossAxis,\n mainAxis: arrow && arrowHeight ? offsetByMainAxis + arrowHeight : offsetByMainAxis,\n }),\n ];\n\n // см. https://floating-ui.com/docs/flip#conflict-with-autoplacement\n if (isAutoPlacement) {\n middlewares.push(autoPlacementMiddleware({ alignment: getAutoPlacementAlign(placement) }));\n } else if (!disableFlipMiddleware) {\n middlewares.push(\n flipMiddleware({\n fallbackAxisSideDirection: flipMiddlewareFallbackAxisSideDirection,\n crossAxis: false,\n }),\n );\n }\n\n middlewares.push(shiftMiddleware());\n\n if (sameWidth) {\n middlewares.push(\n sizeMiddleware({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n });\n },\n }),\n );\n }\n\n if (customMiddlewares) {\n middlewares.push(...customMiddlewares);\n }\n\n // см. https://floating-ui.com/docs/arrow#order\n if (arrow) {\n middlewares.push(\n arrowMiddleware({\n element: arrowRef,\n padding: arrowPadding,\n }),\n );\n }\n\n if (hideWhenReferenceHidden) {\n middlewares.push(hideMiddleware());\n }\n\n return { middlewares, strictPlacement: isAutoPlacement ? undefined : placement };\n }, [\n placement,\n offsetByCrossAxis,\n arrow,\n arrowHeight,\n offsetByMainAxis,\n disableFlipMiddleware,\n flipMiddlewareFallbackAxisSideDirection,\n sameWidth,\n customMiddlewares,\n hideWhenReferenceHidden,\n arrowRef,\n arrowPadding,\n ]);\n};\n"],"names":["React","arrowMiddleware","autoPlacementMiddleware","flipMiddleware","hideMiddleware","offsetMiddleware","shiftMiddleware","sizeMiddleware","checkIsNotAutoPlacement","getAutoPlacementAlign","useFloatingMiddlewaresBootstrap","placement","arrowRef","arrow","arrowHeight","arrowPadding","sameWidth","offsetByMainAxis","offsetByCrossAxis","customMiddlewares","hideWhenReferenceHidden","disableFlipMiddleware","flipMiddlewareFallbackAxisSideDirection","useMemo","isAutoPlacement","middlewares","crossAxis","mainAxis","push","alignment","fallbackAxisSideDirection","apply","rects","elements","Object","assign","floating","style","width","reference","element","padding","strictPlacement","undefined"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SACEC,eAAe,EACfC,uBAAuB,EACvBC,cAAc,EAEdC,cAAc,EACdC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,QACT,iBAAc;AACrB,SAASC,uBAAuB,EAAEC,qBAAqB,QAAQ,kBAAe;AAsD9E,OAAO,MAAMC,kCAAkC,CAAC,EAC9CC,YAAY,cAAc,EAC1BC,WAAW,IAAI,EACfC,KAAK,EACLC,WAAW,EACXC,YAAY,EACZC,SAAS,EACTC,mBAAmB,CAAC,EACpBC,oBAAoB,CAAC,EACrBC,iBAAiB,EACjBC,uBAAuB,EACvBC,wBAAwB,KAAK,EAC7BC,0CAA0C,OAAO,EACV;IAIvC,OAAOtB,MAAMuB,OAAO,CAAC;QACnB,MAAMC,kBAAkB,CAAChB,wBAAwBG;QACjD,MAAMc,cAAuC;YAC3CpB,iBAAiB;gBACfqB,WAAWR;gBACXS,UAAUd,SAASC,cAAcG,mBAAmBH,cAAcG;YACpE;SACD;QAED,oEAAoE;QACpE,IAAIO,iBAAiB;YACnBC,YAAYG,IAAI,CAAC1B,wBAAwB;gBAAE2B,WAAWpB,sBAAsBE;YAAW;QACzF,OAAO,IAAI,CAACU,uBAAuB;YACjCI,YAAYG,IAAI,CACdzB,eAAe;gBACb2B,2BAA2BR;gBAC3BI,WAAW;YACb;QAEJ;QAEAD,YAAYG,IAAI,CAACtB;QAEjB,IAAIU,WAAW;YACbS,YAAYG,IAAI,CACdrB,eAAe;gBACbwB,OAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAE;oBACvBC,OAAOC,MAAM,CAACF,SAASG,QAAQ,CAACC,KAAK,EAAE;wBACrCC,OAAO,GAAGN,MAAMO,SAAS,CAACD,KAAK,CAAC,EAAE,CAAC;oBACrC;gBACF;YACF;QAEJ;QAEA,IAAInB,mBAAmB;YACrBM,YAAYG,IAAI,IAAIT;QACtB;QAEA,+CAA+C;QAC/C,IAAIN,OAAO;YACTY,YAAYG,IAAI,CACd3B,gBAAgB;gBACduC,SAAS5B;gBACT6B,SAAS1B;YACX;QAEJ;QAEA,IAAIK,yBAAyB;YAC3BK,YAAYG,IAAI,CAACxB;QACnB;QAEA,OAAO;YAAEqB;YAAaiB,iBAAiBlB,kBAAkBmB,YAAYhC;QAAU;IACjF,GAAG;QACDA;QACAO;QACAL;QACAC;QACAG;QACAI;QACAC;QACAN;QACAG;QACAC;QACAR;QACAG;KACD;AACH,EAAE"}
@@ -255,7 +255,12 @@ shown: shownProp, onShownChange: onShownChangeProp, onShownChanged: onShownChang
255
255
  triggerOnClick
256
256
  ]);
257
257
  if (shownFinalState) {
258
- floatingPropsRef.current.style = convertFloatingDataToReactCSSProperties(strategy, x, y, undefined, middlewareData);
258
+ floatingPropsRef.current.style = convertFloatingDataToReactCSSProperties({
259
+ strategy,
260
+ x,
261
+ y,
262
+ middlewareData
263
+ });
259
264
  if (disableInteractive) {
260
265
  floatingPropsRef.current.style.pointerEvents = 'none';
261
266
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts"],"sourcesContent":["import * as React from 'react';\nimport { debounce, noop } from '@vkontakte/vkjs';\nimport { getWindow, isHTMLElement } from '@vkontakte/vkui-floating-ui/utils/dom';\nimport { useCustomEnsuredControl } from '../../../hooks/useEnsuredControl';\nimport { useGlobalOnClickOutside } from '../../../hooks/useGlobalOnClickOutside';\nimport { useStableCallback } from '../../../hooks/useStableCallback';\nimport { contains, getActiveElementByAnotherElement } from '../../dom';\nimport { useIsomorphicLayoutEffect } from '../../useIsomorphicLayoutEffect';\nimport { autoUpdateFloatingElement, useFloating } from '../adapters';\nimport { convertFloatingDataToReactCSSProperties } from '../functions';\nimport { type UseFloatingOptions } from '../types/common';\nimport { DEFAULT_TRIGGER } from './constants';\nimport type {\n FloatingProps,\n ReferenceProps,\n ShownChangeReason,\n UseFloatingWithInteractionsProps,\n UseFloatingWithInteractionsReturn,\n} from './types';\nimport { useResolveTriggerType } from './useResolveTriggerType';\n\ntype LocalState = { shown: boolean; reason?: ShownChangeReason };\n\nconst whileElementsMounted: UseFloatingOptions['whileElementsMounted'] = (...args) =>\n /* istanbul ignore next: не знаю как проверить */\n autoUpdateFloatingElement(...args, { elementResize: true });\n\n/**\n * @private\n */\nexport const useFloatingWithInteractions = <T extends HTMLElement = HTMLElement>({\n trigger = DEFAULT_TRIGGER,\n\n // UseFloating\n placement: placementProp = 'bottom',\n strategy: strategyProp = 'fixed',\n middlewares,\n hoverDelay = 0,\n closeAfterClick = false,\n\n // disables\n disabled = false,\n disableInteractive = false,\n disableCloseOnClickOutside = false,\n disableCloseOnEscKey = false,\n\n // uncontrolled\n defaultShown = false,\n\n // controlled\n shown: shownProp,\n onShownChange: onShownChangeProp,\n onShownChanged: onShownChangedProp,\n}: UseFloatingWithInteractionsProps): UseFloatingWithInteractionsReturn<T> => {\n const memoizedValue = React.useMemo<LocalState | undefined>(\n () => (shownProp !== undefined ? { shown: shownProp } : undefined),\n [shownProp],\n );\n const [shownLocalState, setShownLocalState] = useCustomEnsuredControl<LocalState>({\n value: memoizedValue,\n disabled,\n defaultValue: { shown: defaultShown },\n onChange: useStableCallback(({ shown, reason }) => {\n if (onShownChangeProp) {\n onShownChangeProp(shown, reason);\n }\n }),\n });\n const onShownChanged = useStableCallback(onShownChangedProp ? onShownChangedProp : noop);\n const [shownFinalState, setShownFinalState] = React.useState(() => shownLocalState.shown);\n const [willBeHide, setWillBeHide] = React.useState(false);\n\n const hasCSSAnimation = React.useRef(false);\n\n const blockMouseEnterRef = React.useRef(false);\n const blockFocusRef = React.useRef(false);\n const blurTimeoutRef = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n const handleCloseOnReferenceClickOutsideDisabled =\n disabled || disableCloseOnClickOutside || willBeHide || !shownLocalState.shown;\n const handleCloseOnFloatingClickOutsideDisabled =\n disableInteractive || handleCloseOnReferenceClickOutsideDisabled;\n\n const { triggerOnFocus, triggerOnClick, triggerOnHover } = useResolveTriggerType(trigger);\n\n // Библиотека `floating-ui`\n const { placement, x, y, strategy, refs, middlewareData } = useFloating<T>({\n strategy: strategyProp,\n placement: placementProp,\n middleware: middlewares,\n whileElementsMounted,\n });\n\n const commitShownLocalState = React.useCallback(\n (nextShown: boolean, reason: ShownChangeReason) => {\n setShownLocalState((prevState) => {\n if (prevState.shown !== nextShown || prevState.reason !== reason) {\n return {\n shown: nextShown,\n reason,\n };\n }\n /* istanbul ignore next: страховка, если вдруг на момент вызова обновления состояния, оно уже будет актуальным */\n return prevState;\n });\n },\n [setShownLocalState],\n );\n\n const [mouseEnterDelay, mouseLeaveDelay] =\n typeof hoverDelay === 'number' ? [hoverDelay, hoverDelay] : hoverDelay;\n\n const showWithDelay = React.useMemo(\n () => debounce(() => commitShownLocalState(true, 'hover'), mouseEnterDelay),\n [mouseEnterDelay, commitShownLocalState],\n );\n\n const hideWithDelay = React.useMemo(\n () => debounce(() => commitShownLocalState(false, 'hover'), mouseLeaveDelay),\n [mouseLeaveDelay, commitShownLocalState],\n );\n\n const handleFocusOnReference = useStableCallback(() => {\n // Повторный вызов события фокуса - следствие клика на reference-элемент\n if (shownLocalState.shown) {\n if (!closeAfterClick && shownLocalState.reason === 'hover') {\n return;\n }\n commitShownLocalState(false, 'focus');\n return;\n }\n if (blockFocusRef.current) {\n /* istanbul ignore next: в Jest не воспроизводится баг на вебе (cм. onRestoreFocus) */\n blockFocusRef.current = false;\n return;\n }\n\n commitShownLocalState(true, 'focus');\n });\n\n const handleBlurOnReference = useStableCallback((event: React.FocusEvent) => {\n blockFocusRef.current = false;\n blockMouseEnterRef.current = false;\n\n if (!shownLocalState.shown) {\n clearTimeout(blurTimeoutRef.current);\n return;\n }\n\n const relatedTarget = event.relatedTarget;\n blurTimeoutRef.current = setTimeout(function waitWindowBlurFire() {\n const reference = refs.reference.current;\n // Если пользователь покинул текущее окно в открытом состоянии, то\n // не закрываем всплывающий элемент.\n /* istanbul ignore if: не умеем симулировать уход из текущего окна */\n if (!relatedTarget && getActiveElementByAnotherElement(reference) === reference) {\n /* istanbul ignore next */\n return;\n }\n\n // Если пользователь нажал на всплывающий элемент, то не закрываем всплывающий элемент.\n // Note: для этого элемент должен быть фокусируемый (например, за счёт `tabindex=\"-1\"`).\n if (contains(refs.floating.current, relatedTarget) || contains(reference, relatedTarget)) {\n return;\n }\n\n commitShownLocalState(false, 'focus');\n });\n });\n\n const handleClickOnReference = useStableCallback(() => {\n // Предыдущий триггер (фокус) уже вызвал открытие/закрытие всплывающего окна, игнорируем вызов\n if (shownLocalState.reason === 'focus') {\n commitShownLocalState(shownLocalState.shown, 'click');\n return;\n }\n commitShownLocalState(!shownLocalState.shown, 'click');\n });\n\n const handleClickOnReferenceForOnlyClose = useStableCallback(() => {\n blockMouseEnterRef.current = true;\n commitShownLocalState(false, 'click');\n });\n\n const handleMouseEnterOnBoth = useStableCallback((event: React.MouseEvent<HTMLElement>) => {\n if (willBeHide && event.currentTarget === refs.floating.current) {\n return;\n }\n\n showWithDelay.cancel();\n hideWithDelay.cancel();\n\n if (!blockMouseEnterRef.current && !shownLocalState.shown) {\n showWithDelay();\n }\n });\n\n const handleMouseLeaveOnBothForHoverAndFocusStates = useStableCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (willBeHide && event.currentTarget === refs.floating.current) {\n return;\n }\n\n blockFocusRef.current = false;\n blockMouseEnterRef.current = false;\n\n if (triggerOnHover) {\n showWithDelay.cancel();\n hideWithDelay.cancel();\n\n hideWithDelay();\n }\n },\n );\n\n const handleFloatingAnimationStart = () => {\n hasCSSAnimation.current = true;\n };\n\n const handleFloatingAnimationEnd = () => {\n if (willBeHide) {\n setShownFinalState(false);\n setWillBeHide(false);\n onShownChanged(false, shownLocalState.reason);\n }\n };\n\n const handleOnClose = React.useCallback(() => {\n blockFocusRef.current = true;\n commitShownLocalState(false, 'callback');\n }, [commitShownLocalState]);\n\n const handleRestoreFocus: UseFloatingWithInteractionsReturn['onRestoreFocus'] = React.useCallback(\n (restoreFocus = true) => {\n if (!restoreFocus) {\n return false;\n }\n if (restoreFocus === true) {\n return triggerOnFocus ? blockFocusRef.current : true;\n } else if (restoreFocus === 'anchor-element') {\n return refs.reference.current as HTMLElement;\n } else if (restoreFocus instanceof HTMLElement) {\n return restoreFocus;\n }\n return false;\n },\n [refs.reference, triggerOnFocus],\n );\n\n const handleEscapeKeyDown = React.useCallback(() => {\n blockFocusRef.current = true;\n commitShownLocalState(false, 'escape-key');\n }, [commitShownLocalState]);\n\n const handleClickOutside = React.useCallback(() => {\n blockFocusRef.current = true;\n commitShownLocalState(false, 'click-outside');\n }, [commitShownLocalState]);\n\n useGlobalOnClickOutside(\n handleClickOutside,\n handleCloseOnReferenceClickOutsideDisabled ? null : refs.reference,\n handleCloseOnFloatingClickOutsideDisabled ? null : refs.floating,\n );\n\n useIsomorphicLayoutEffect(\n /**\n * Если пользователь покинул активное окно и:\n * 1. целевой элемент был в состоянии фокуса;\n * 2. всплывающий элемент был закрытом состоянии;\n * то фокус должен быть заблокирован, когда пользователь вернётся обратно. Иначе покажется\n * всплывающий элемент.\n */\n function setGlobalBlurForTriggerOnFocus() {\n if (!triggerOnFocus || !refs.reference.current) {\n return;\n }\n\n const handleGlobalBlur = () => {\n /* istanbul ignore next */\n const reference = refs.reference.current;\n /* istanbul ignore if: не умеем симулировать уход из текущего окна */\n if (\n !shownLocalState.shown &&\n isHTMLElement(reference) &&\n reference === getActiveElementByAnotherElement(reference)\n ) {\n /* istanbul ignore next */\n blockFocusRef.current = true;\n }\n };\n\n const win = getWindow(refs.reference.current);\n win.addEventListener('blur', handleGlobalBlur);\n return () => {\n win.removeEventListener('blur', handleGlobalBlur);\n };\n },\n [triggerOnFocus, refs.reference, shownLocalState],\n );\n\n useIsomorphicLayoutEffect(\n function resolveShownStates() {\n if (willBeHide || shownLocalState.shown === shownFinalState) {\n return;\n }\n\n if (shownLocalState.shown) {\n setShownFinalState(true);\n onShownChanged(true, shownLocalState.reason);\n } else if (hasCSSAnimation.current && !willBeHide) {\n setWillBeHide(true);\n } else {\n setShownFinalState(false);\n }\n\n return () => {\n clearTimeout(blurTimeoutRef.current);\n };\n },\n [shownLocalState, shownFinalState, willBeHide, onShownChanged],\n );\n\n const referencePropsRef = React.useRef<ReferenceProps>({});\n const floatingPropsRef = React.useRef<FloatingProps>({ style: {} });\n\n useIsomorphicLayoutEffect(() => {\n referencePropsRef.current = {};\n }, [triggerOnHover, triggerOnFocus, triggerOnClick]);\n\n if (shownFinalState) {\n floatingPropsRef.current.style = convertFloatingDataToReactCSSProperties(\n strategy,\n x,\n y,\n undefined,\n middlewareData,\n );\n\n if (disableInteractive) {\n floatingPropsRef.current.style.pointerEvents = 'none';\n }\n }\n\n if (triggerOnFocus) {\n referencePropsRef.current.onFocus = handleFocusOnReference;\n referencePropsRef.current.onBlur = handleBlurOnReference;\n }\n\n if (triggerOnClick) {\n referencePropsRef.current.onClick = handleClickOnReference;\n }\n\n if (triggerOnHover) {\n referencePropsRef.current.onMouseOver = handleMouseEnterOnBoth;\n\n if (closeAfterClick && !triggerOnClick) {\n referencePropsRef.current.onClick = handleClickOnReferenceForOnlyClose;\n }\n\n if (!disableInteractive) {\n floatingPropsRef.current.onMouseOver = handleMouseEnterOnBoth;\n }\n }\n\n if (triggerOnHover || triggerOnFocus) {\n referencePropsRef.current.onMouseLeave = handleMouseLeaveOnBothForHoverAndFocusStates;\n\n if (!disableInteractive) {\n floatingPropsRef.current.onMouseLeave = handleMouseLeaveOnBothForHoverAndFocusStates;\n }\n }\n\n if (shownFinalState) {\n floatingPropsRef.current.onAnimationStart = handleFloatingAnimationStart;\n floatingPropsRef.current.onAnimationEnd = handleFloatingAnimationEnd;\n }\n\n return {\n placement,\n shown: shownFinalState,\n willBeHide,\n refs,\n referenceProps: referencePropsRef.current,\n floatingProps: floatingPropsRef.current,\n middlewareData,\n onClose: handleOnClose,\n // FocusTrap уже определяет нажатие на ESC, поэтому название события содержит конкретный код\n // кнопки вместо просто onKeyDown.\n onEscapeKeyDown: !shownFinalState || disableCloseOnEscKey ? undefined : handleEscapeKeyDown,\n // [Обход баги с FocusTrap]\n //\n // Если сфокусироваться на целевой элемент через нажатие, а потом нажать в область за пределами\n // целевого и всплывающего элемента, то появляется моргание из-за того, что FocusTrap\n // восстанавливает фокус, из-за чего всплывающий элемент снова показывается за счёт\n // `handleFocusOnReference`, а потом скрывается за счёт `handleBlurOnReference`.\n onRestoreFocus: handleRestoreFocus,\n };\n};\n"],"names":["React","debounce","noop","getWindow","isHTMLElement","useCustomEnsuredControl","useGlobalOnClickOutside","useStableCallback","contains","getActiveElementByAnotherElement","useIsomorphicLayoutEffect","autoUpdateFloatingElement","useFloating","convertFloatingDataToReactCSSProperties","DEFAULT_TRIGGER","useResolveTriggerType","whileElementsMounted","args","elementResize","useFloatingWithInteractions","trigger","placement","placementProp","strategy","strategyProp","middlewares","hoverDelay","closeAfterClick","disabled","disableInteractive","disableCloseOnClickOutside","disableCloseOnEscKey","defaultShown","shown","shownProp","onShownChange","onShownChangeProp","onShownChanged","onShownChangedProp","memoizedValue","useMemo","undefined","shownLocalState","setShownLocalState","value","defaultValue","onChange","reason","shownFinalState","setShownFinalState","useState","willBeHide","setWillBeHide","hasCSSAnimation","useRef","blockMouseEnterRef","blockFocusRef","blurTimeoutRef","handleCloseOnReferenceClickOutsideDisabled","handleCloseOnFloatingClickOutsideDisabled","triggerOnFocus","triggerOnClick","triggerOnHover","x","y","refs","middlewareData","middleware","commitShownLocalState","useCallback","nextShown","prevState","mouseEnterDelay","mouseLeaveDelay","showWithDelay","hideWithDelay","handleFocusOnReference","current","handleBlurOnReference","event","clearTimeout","relatedTarget","setTimeout","waitWindowBlurFire","reference","floating","handleClickOnReference","handleClickOnReferenceForOnlyClose","handleMouseEnterOnBoth","currentTarget","cancel","handleMouseLeaveOnBothForHoverAndFocusStates","handleFloatingAnimationStart","handleFloatingAnimationEnd","handleOnClose","handleRestoreFocus","restoreFocus","HTMLElement","handleEscapeKeyDown","handleClickOutside","setGlobalBlurForTriggerOnFocus","handleGlobalBlur","win","addEventListener","removeEventListener","resolveShownStates","referencePropsRef","floatingPropsRef","style","pointerEvents","onFocus","onBlur","onClick","onMouseOver","onMouseLeave","onAnimationStart","onAnimationEnd","referenceProps","floatingProps","onClose","onEscapeKeyDown","onRestoreFocus"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts"],"sourcesContent":["import * as React from 'react';\nimport { debounce, noop } from '@vkontakte/vkjs';\nimport { getWindow, isHTMLElement } from '@vkontakte/vkui-floating-ui/utils/dom';\nimport { useCustomEnsuredControl } from '../../../hooks/useEnsuredControl';\nimport { useGlobalOnClickOutside } from '../../../hooks/useGlobalOnClickOutside';\nimport { useStableCallback } from '../../../hooks/useStableCallback';\nimport { contains, getActiveElementByAnotherElement } from '../../dom';\nimport { useIsomorphicLayoutEffect } from '../../useIsomorphicLayoutEffect';\nimport { autoUpdateFloatingElement, useFloating } from '../adapters';\nimport { convertFloatingDataToReactCSSProperties } from '../functions';\nimport { type UseFloatingOptions } from '../types/common';\nimport { DEFAULT_TRIGGER } from './constants';\nimport type {\n FloatingProps,\n ReferenceProps,\n ShownChangeReason,\n UseFloatingWithInteractionsProps,\n UseFloatingWithInteractionsReturn,\n} from './types';\nimport { useResolveTriggerType } from './useResolveTriggerType';\n\ntype LocalState = { shown: boolean; reason?: ShownChangeReason };\n\nconst whileElementsMounted: UseFloatingOptions['whileElementsMounted'] = (...args) =>\n /* istanbul ignore next: не знаю как проверить */\n autoUpdateFloatingElement(...args, { elementResize: true });\n\n/**\n * @private\n */\nexport const useFloatingWithInteractions = <T extends HTMLElement = HTMLElement>({\n trigger = DEFAULT_TRIGGER,\n\n // UseFloating\n placement: placementProp = 'bottom',\n strategy: strategyProp = 'fixed',\n middlewares,\n hoverDelay = 0,\n closeAfterClick = false,\n\n // disables\n disabled = false,\n disableInteractive = false,\n disableCloseOnClickOutside = false,\n disableCloseOnEscKey = false,\n\n // uncontrolled\n defaultShown = false,\n\n // controlled\n shown: shownProp,\n onShownChange: onShownChangeProp,\n onShownChanged: onShownChangedProp,\n}: UseFloatingWithInteractionsProps): UseFloatingWithInteractionsReturn<T> => {\n const memoizedValue = React.useMemo<LocalState | undefined>(\n () => (shownProp !== undefined ? { shown: shownProp } : undefined),\n [shownProp],\n );\n const [shownLocalState, setShownLocalState] = useCustomEnsuredControl<LocalState>({\n value: memoizedValue,\n disabled,\n defaultValue: { shown: defaultShown },\n onChange: useStableCallback(({ shown, reason }) => {\n if (onShownChangeProp) {\n onShownChangeProp(shown, reason);\n }\n }),\n });\n const onShownChanged = useStableCallback(onShownChangedProp ? onShownChangedProp : noop);\n const [shownFinalState, setShownFinalState] = React.useState(() => shownLocalState.shown);\n const [willBeHide, setWillBeHide] = React.useState(false);\n\n const hasCSSAnimation = React.useRef(false);\n\n const blockMouseEnterRef = React.useRef(false);\n const blockFocusRef = React.useRef(false);\n const blurTimeoutRef = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n const handleCloseOnReferenceClickOutsideDisabled =\n disabled || disableCloseOnClickOutside || willBeHide || !shownLocalState.shown;\n const handleCloseOnFloatingClickOutsideDisabled =\n disableInteractive || handleCloseOnReferenceClickOutsideDisabled;\n\n const { triggerOnFocus, triggerOnClick, triggerOnHover } = useResolveTriggerType(trigger);\n\n // Библиотека `floating-ui`\n const { placement, x, y, strategy, refs, middlewareData } = useFloating<T>({\n strategy: strategyProp,\n placement: placementProp,\n middleware: middlewares,\n whileElementsMounted,\n });\n\n const commitShownLocalState = React.useCallback(\n (nextShown: boolean, reason: ShownChangeReason) => {\n setShownLocalState((prevState) => {\n if (prevState.shown !== nextShown || prevState.reason !== reason) {\n return {\n shown: nextShown,\n reason,\n };\n }\n /* istanbul ignore next: страховка, если вдруг на момент вызова обновления состояния, оно уже будет актуальным */\n return prevState;\n });\n },\n [setShownLocalState],\n );\n\n const [mouseEnterDelay, mouseLeaveDelay] =\n typeof hoverDelay === 'number' ? [hoverDelay, hoverDelay] : hoverDelay;\n\n const showWithDelay = React.useMemo(\n () => debounce(() => commitShownLocalState(true, 'hover'), mouseEnterDelay),\n [mouseEnterDelay, commitShownLocalState],\n );\n\n const hideWithDelay = React.useMemo(\n () => debounce(() => commitShownLocalState(false, 'hover'), mouseLeaveDelay),\n [mouseLeaveDelay, commitShownLocalState],\n );\n\n const handleFocusOnReference = useStableCallback(() => {\n // Повторный вызов события фокуса - следствие клика на reference-элемент\n if (shownLocalState.shown) {\n if (!closeAfterClick && shownLocalState.reason === 'hover') {\n return;\n }\n commitShownLocalState(false, 'focus');\n return;\n }\n if (blockFocusRef.current) {\n /* istanbul ignore next: в Jest не воспроизводится баг на вебе (cм. onRestoreFocus) */\n blockFocusRef.current = false;\n return;\n }\n\n commitShownLocalState(true, 'focus');\n });\n\n const handleBlurOnReference = useStableCallback((event: React.FocusEvent) => {\n blockFocusRef.current = false;\n blockMouseEnterRef.current = false;\n\n if (!shownLocalState.shown) {\n clearTimeout(blurTimeoutRef.current);\n return;\n }\n\n const relatedTarget = event.relatedTarget;\n blurTimeoutRef.current = setTimeout(function waitWindowBlurFire() {\n const reference = refs.reference.current;\n // Если пользователь покинул текущее окно в открытом состоянии, то\n // не закрываем всплывающий элемент.\n /* istanbul ignore if: не умеем симулировать уход из текущего окна */\n if (!relatedTarget && getActiveElementByAnotherElement(reference) === reference) {\n /* istanbul ignore next */\n return;\n }\n\n // Если пользователь нажал на всплывающий элемент, то не закрываем всплывающий элемент.\n // Note: для этого элемент должен быть фокусируемый (например, за счёт `tabindex=\"-1\"`).\n if (contains(refs.floating.current, relatedTarget) || contains(reference, relatedTarget)) {\n return;\n }\n\n commitShownLocalState(false, 'focus');\n });\n });\n\n const handleClickOnReference = useStableCallback(() => {\n // Предыдущий триггер (фокус) уже вызвал открытие/закрытие всплывающего окна, игнорируем вызов\n if (shownLocalState.reason === 'focus') {\n commitShownLocalState(shownLocalState.shown, 'click');\n return;\n }\n commitShownLocalState(!shownLocalState.shown, 'click');\n });\n\n const handleClickOnReferenceForOnlyClose = useStableCallback(() => {\n blockMouseEnterRef.current = true;\n commitShownLocalState(false, 'click');\n });\n\n const handleMouseEnterOnBoth = useStableCallback((event: React.MouseEvent<HTMLElement>) => {\n if (willBeHide && event.currentTarget === refs.floating.current) {\n return;\n }\n\n showWithDelay.cancel();\n hideWithDelay.cancel();\n\n if (!blockMouseEnterRef.current && !shownLocalState.shown) {\n showWithDelay();\n }\n });\n\n const handleMouseLeaveOnBothForHoverAndFocusStates = useStableCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (willBeHide && event.currentTarget === refs.floating.current) {\n return;\n }\n\n blockFocusRef.current = false;\n blockMouseEnterRef.current = false;\n\n if (triggerOnHover) {\n showWithDelay.cancel();\n hideWithDelay.cancel();\n\n hideWithDelay();\n }\n },\n );\n\n const handleFloatingAnimationStart = () => {\n hasCSSAnimation.current = true;\n };\n\n const handleFloatingAnimationEnd = () => {\n if (willBeHide) {\n setShownFinalState(false);\n setWillBeHide(false);\n onShownChanged(false, shownLocalState.reason);\n }\n };\n\n const handleOnClose = React.useCallback(() => {\n blockFocusRef.current = true;\n commitShownLocalState(false, 'callback');\n }, [commitShownLocalState]);\n\n const handleRestoreFocus: UseFloatingWithInteractionsReturn['onRestoreFocus'] = React.useCallback(\n (restoreFocus = true) => {\n if (!restoreFocus) {\n return false;\n }\n if (restoreFocus === true) {\n return triggerOnFocus ? blockFocusRef.current : true;\n } else if (restoreFocus === 'anchor-element') {\n return refs.reference.current as HTMLElement;\n } else if (restoreFocus instanceof HTMLElement) {\n return restoreFocus;\n }\n return false;\n },\n [refs.reference, triggerOnFocus],\n );\n\n const handleEscapeKeyDown = React.useCallback(() => {\n blockFocusRef.current = true;\n commitShownLocalState(false, 'escape-key');\n }, [commitShownLocalState]);\n\n const handleClickOutside = React.useCallback(() => {\n blockFocusRef.current = true;\n commitShownLocalState(false, 'click-outside');\n }, [commitShownLocalState]);\n\n useGlobalOnClickOutside(\n handleClickOutside,\n handleCloseOnReferenceClickOutsideDisabled ? null : refs.reference,\n handleCloseOnFloatingClickOutsideDisabled ? null : refs.floating,\n );\n\n useIsomorphicLayoutEffect(\n /**\n * Если пользователь покинул активное окно и:\n * 1. целевой элемент был в состоянии фокуса;\n * 2. всплывающий элемент был закрытом состоянии;\n * то фокус должен быть заблокирован, когда пользователь вернётся обратно. Иначе покажется\n * всплывающий элемент.\n */\n function setGlobalBlurForTriggerOnFocus() {\n if (!triggerOnFocus || !refs.reference.current) {\n return;\n }\n\n const handleGlobalBlur = () => {\n /* istanbul ignore next */\n const reference = refs.reference.current;\n /* istanbul ignore if: не умеем симулировать уход из текущего окна */\n if (\n !shownLocalState.shown &&\n isHTMLElement(reference) &&\n reference === getActiveElementByAnotherElement(reference)\n ) {\n /* istanbul ignore next */\n blockFocusRef.current = true;\n }\n };\n\n const win = getWindow(refs.reference.current);\n win.addEventListener('blur', handleGlobalBlur);\n return () => {\n win.removeEventListener('blur', handleGlobalBlur);\n };\n },\n [triggerOnFocus, refs.reference, shownLocalState],\n );\n\n useIsomorphicLayoutEffect(\n function resolveShownStates() {\n if (willBeHide || shownLocalState.shown === shownFinalState) {\n return;\n }\n\n if (shownLocalState.shown) {\n setShownFinalState(true);\n onShownChanged(true, shownLocalState.reason);\n } else if (hasCSSAnimation.current && !willBeHide) {\n setWillBeHide(true);\n } else {\n setShownFinalState(false);\n }\n\n return () => {\n clearTimeout(blurTimeoutRef.current);\n };\n },\n [shownLocalState, shownFinalState, willBeHide, onShownChanged],\n );\n\n const referencePropsRef = React.useRef<ReferenceProps>({});\n const floatingPropsRef = React.useRef<FloatingProps>({ style: {} });\n\n useIsomorphicLayoutEffect(() => {\n referencePropsRef.current = {};\n }, [triggerOnHover, triggerOnFocus, triggerOnClick]);\n\n if (shownFinalState) {\n floatingPropsRef.current.style = convertFloatingDataToReactCSSProperties({\n strategy,\n x,\n y,\n middlewareData,\n });\n\n if (disableInteractive) {\n floatingPropsRef.current.style.pointerEvents = 'none';\n }\n }\n\n if (triggerOnFocus) {\n referencePropsRef.current.onFocus = handleFocusOnReference;\n referencePropsRef.current.onBlur = handleBlurOnReference;\n }\n\n if (triggerOnClick) {\n referencePropsRef.current.onClick = handleClickOnReference;\n }\n\n if (triggerOnHover) {\n referencePropsRef.current.onMouseOver = handleMouseEnterOnBoth;\n\n if (closeAfterClick && !triggerOnClick) {\n referencePropsRef.current.onClick = handleClickOnReferenceForOnlyClose;\n }\n\n if (!disableInteractive) {\n floatingPropsRef.current.onMouseOver = handleMouseEnterOnBoth;\n }\n }\n\n if (triggerOnHover || triggerOnFocus) {\n referencePropsRef.current.onMouseLeave = handleMouseLeaveOnBothForHoverAndFocusStates;\n\n if (!disableInteractive) {\n floatingPropsRef.current.onMouseLeave = handleMouseLeaveOnBothForHoverAndFocusStates;\n }\n }\n\n if (shownFinalState) {\n floatingPropsRef.current.onAnimationStart = handleFloatingAnimationStart;\n floatingPropsRef.current.onAnimationEnd = handleFloatingAnimationEnd;\n }\n\n return {\n placement,\n shown: shownFinalState,\n willBeHide,\n refs,\n referenceProps: referencePropsRef.current,\n floatingProps: floatingPropsRef.current,\n middlewareData,\n onClose: handleOnClose,\n // FocusTrap уже определяет нажатие на ESC, поэтому название события содержит конкретный код\n // кнопки вместо просто onKeyDown.\n onEscapeKeyDown: !shownFinalState || disableCloseOnEscKey ? undefined : handleEscapeKeyDown,\n // [Обход баги с FocusTrap]\n //\n // Если сфокусироваться на целевой элемент через нажатие, а потом нажать в область за пределами\n // целевого и всплывающего элемента, то появляется моргание из-за того, что FocusTrap\n // восстанавливает фокус, из-за чего всплывающий элемент снова показывается за счёт\n // `handleFocusOnReference`, а потом скрывается за счёт `handleBlurOnReference`.\n onRestoreFocus: handleRestoreFocus,\n };\n};\n"],"names":["React","debounce","noop","getWindow","isHTMLElement","useCustomEnsuredControl","useGlobalOnClickOutside","useStableCallback","contains","getActiveElementByAnotherElement","useIsomorphicLayoutEffect","autoUpdateFloatingElement","useFloating","convertFloatingDataToReactCSSProperties","DEFAULT_TRIGGER","useResolveTriggerType","whileElementsMounted","args","elementResize","useFloatingWithInteractions","trigger","placement","placementProp","strategy","strategyProp","middlewares","hoverDelay","closeAfterClick","disabled","disableInteractive","disableCloseOnClickOutside","disableCloseOnEscKey","defaultShown","shown","shownProp","onShownChange","onShownChangeProp","onShownChanged","onShownChangedProp","memoizedValue","useMemo","undefined","shownLocalState","setShownLocalState","value","defaultValue","onChange","reason","shownFinalState","setShownFinalState","useState","willBeHide","setWillBeHide","hasCSSAnimation","useRef","blockMouseEnterRef","blockFocusRef","blurTimeoutRef","handleCloseOnReferenceClickOutsideDisabled","handleCloseOnFloatingClickOutsideDisabled","triggerOnFocus","triggerOnClick","triggerOnHover","x","y","refs","middlewareData","middleware","commitShownLocalState","useCallback","nextShown","prevState","mouseEnterDelay","mouseLeaveDelay","showWithDelay","hideWithDelay","handleFocusOnReference","current","handleBlurOnReference","event","clearTimeout","relatedTarget","setTimeout","waitWindowBlurFire","reference","floating","handleClickOnReference","handleClickOnReferenceForOnlyClose","handleMouseEnterOnBoth","currentTarget","cancel","handleMouseLeaveOnBothForHoverAndFocusStates","handleFloatingAnimationStart","handleFloatingAnimationEnd","handleOnClose","handleRestoreFocus","restoreFocus","HTMLElement","handleEscapeKeyDown","handleClickOutside","setGlobalBlurForTriggerOnFocus","handleGlobalBlur","win","addEventListener","removeEventListener","resolveShownStates","referencePropsRef","floatingPropsRef","style","pointerEvents","onFocus","onBlur","onClick","onMouseOver","onMouseLeave","onAnimationStart","onAnimationEnd","referenceProps","floatingProps","onClose","onEscapeKeyDown","onRestoreFocus"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ import { useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect.js";
3
+ export function useReferenceHiddenChangeCallback(hideMiddleware, onReferenceHiddenChange) {
4
+ const prevHiddenRef = React.useRef(hideMiddleware?.referenceHidden);
5
+ React.useEffect(()=>{
6
+ prevHiddenRef.current = hideMiddleware?.referenceHidden;
7
+ });
8
+ useIsomorphicLayoutEffect(function checkHiddenChanged() {
9
+ if (!onReferenceHiddenChange) {
10
+ return;
11
+ }
12
+ if (hideMiddleware?.referenceHidden !== prevHiddenRef.current) {
13
+ onReferenceHiddenChange(hideMiddleware?.referenceHidden || false);
14
+ }
15
+ }, [
16
+ hideMiddleware?.referenceHidden,
17
+ onReferenceHiddenChange
18
+ ]);
19
+ }
20
+
21
+ //# sourceMappingURL=useReferenceHiddenChangeCallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/floating/useReferenceHiddenChangeCallback.ts"],"sourcesContent":["import * as React from 'react';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect';\nimport { type UseFloatingData } from './types/common';\nimport { type FloatingComponentProps } from './types/component';\n\nexport function useReferenceHiddenChangeCallback(\n hideMiddleware: UseFloatingData['middlewareData']['hide'],\n onReferenceHiddenChange: FloatingComponentProps['onReferenceHiddenChange'],\n) {\n const prevHiddenRef = React.useRef<boolean | undefined>(hideMiddleware?.referenceHidden);\n React.useEffect(() => {\n prevHiddenRef.current = hideMiddleware?.referenceHidden;\n });\n\n useIsomorphicLayoutEffect(\n function checkHiddenChanged() {\n if (!onReferenceHiddenChange) {\n return;\n }\n if (hideMiddleware?.referenceHidden !== prevHiddenRef.current) {\n onReferenceHiddenChange(hideMiddleware?.referenceHidden || false);\n }\n },\n [hideMiddleware?.referenceHidden, onReferenceHiddenChange],\n );\n}\n"],"names":["React","useIsomorphicLayoutEffect","useReferenceHiddenChangeCallback","hideMiddleware","onReferenceHiddenChange","prevHiddenRef","useRef","referenceHidden","useEffect","current","checkHiddenChanged"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,yBAAyB,QAAQ,kCAA+B;AAIzE,OAAO,SAASC,iCACdC,cAAyD,EACzDC,uBAA0E;IAE1E,MAAMC,gBAAgBL,MAAMM,MAAM,CAAsBH,gBAAgBI;IACxEP,MAAMQ,SAAS,CAAC;QACdH,cAAcI,OAAO,GAAGN,gBAAgBI;IAC1C;IAEAN,0BACE,SAASS;QACP,IAAI,CAACN,yBAAyB;YAC5B;QACF;QACA,IAAID,gBAAgBI,oBAAoBF,cAAcI,OAAO,EAAE;YAC7DL,wBAAwBD,gBAAgBI,mBAAmB;QAC7D;IACF,GACA;QAACJ,gBAAgBI;QAAiBH;KAAwB;AAE9D"}
@@ -0,0 +1,9 @@
1
+ // eslint-disable-next-line @typescript-eslint/ban-types
2
+ export function mapObject(object, map) {
3
+ return Object.entries(object).reduce((acc, [key, value])=>Object.assign(acc, {
4
+ [key]: map(value, key)
5
+ }), // eslint-disable-next-line @typescript-eslint/consistent-type-assertions, @typescript-eslint/prefer-reduce-type-parameter
6
+ {});
7
+ }
8
+
9
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/object.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-types\nexport function mapObject<T extends Object, R extends Record<keyof T, any>>(\n object: T,\n map: (value: T[keyof T], key: keyof T) => R[keyof T],\n): R {\n return Object.entries(object).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: map(value, key as keyof T),\n }),\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions, @typescript-eslint/prefer-reduce-type-parameter\n {} as R,\n );\n}\n"],"names":["mapObject","object","map","Object","entries","reduce","acc","key","value","assign"],"mappings":"AAAA,wDAAwD;AACxD,OAAO,SAASA,UACdC,MAAS,EACTC,GAAoD;IAEpD,OAAOC,OAAOC,OAAO,CAACH,QAAQI,MAAM,CAClC,CAACC,KAAK,CAACC,KAAKC,MAAM,GAChBL,OAAOM,MAAM,CAACH,KAAK;YACjB,CAACC,IAAI,EAAEL,IAAIM,OAAOD;QACpB,IACF,0HAA0H;IAC1H,CAAC;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/select.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { SelectType } from '../components/Select/Select';\nimport { getTextFromChildren } from './children';\n\nexport type Option = {\n value?: unknown;\n label?: React.ReactNode;\n [index: string]: any;\n};\n\nexport type GetOptionLabel<O extends Option> = (option: O) => O['label'];\n\nexport type FilterFn<O extends Option> = (\n inputValue: string,\n option: O,\n getOptionsLabel?: GetOptionLabel<O>,\n) => boolean;\n\nfunction getOptionLabelDefault<O extends Option>(option: O): O['label'] {\n return option.label;\n}\n\nexport function defaultFilterFn<O extends Option>(\n ...args: Parameters<FilterFn<O>>\n): ReturnType<FilterFn<O>> {\n const [rawSearchQuery = '', option, getOptionLabel] = args;\n const foundRawLabel = getOptionLabel ? getOptionLabel(option) : getOptionLabelDefault(option);\n\n if (foundRawLabel === undefined) {\n return false;\n }\n\n const searchQuery = rawSearchQuery.toLocaleLowerCase();\n const label = getTextFromChildren(foundRawLabel).toLocaleLowerCase();\n\n if (label.startsWith(searchQuery)) {\n return true;\n }\n\n const findAllIncludes = (target = '', search = '') => {\n const includes = [];\n let i = target.indexOf(search);\n while (i !== -1) {\n includes.push(i);\n i = target.indexOf(search, i + 1);\n }\n return includes;\n };\n\n const includes = findAllIncludes(label, searchQuery);\n\n if (includes.length) {\n // Ищем вхождение перед началом которого не буква\n const letterRegexp = new RegExp('\\\\p{L}', 'u');\n\n for (const index of includes) {\n if (!letterRegexp.test(label[index - 1])) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport const getFormFieldModeFromSelectType = (\n selectType: SelectType = 'default',\n): 'default' | 'plain' => {\n return selectType === 'default' ? 'default' : 'plain';\n};\n"],"names":["getTextFromChildren","getOptionLabelDefault","option","label","defaultFilterFn","args","rawSearchQuery","getOptionLabel","foundRawLabel","undefined","searchQuery","toLocaleLowerCase","startsWith","findAllIncludes","target","search","includes","i","indexOf","push","length","letterRegexp","RegExp","index","test","getFormFieldModeFromSelectType","selectType"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,gBAAa;AAgBjD,SAASC,sBAAwCC,MAAS;IACxD,OAAOA,OAAOC,KAAK;AACrB;AAEA,OAAO,SAASC,gBACd,GAAGC,IAA6B;IAEhC,MAAM,CAACC,iBAAiB,EAAE,EAAEJ,QAAQK,eAAe,GAAGF;IACtD,MAAMG,gBAAgBD,iBAAiBA,eAAeL,UAAUD,sBAAsBC;IAEtF,IAAIM,kBAAkBC,WAAW;QAC/B,OAAO;IACT;IAEA,MAAMC,cAAcJ,eAAeK,iBAAiB;IACpD,MAAMR,QAAQH,oBAAoBQ,eAAeG,iBAAiB;IAElE,IAAIR,MAAMS,UAAU,CAACF,cAAc;QACjC,OAAO;IACT;IAEA,MAAMG,kBAAkB,CAACC,SAAS,EAAE,EAAEC,SAAS,EAAE;QAC/C,MAAMC,WAAW,EAAE;QACnB,IAAIC,IAAIH,OAAOI,OAAO,CAACH;QACvB,MAAOE,MAAM,CAAC,EAAG;YACfD,SAASG,IAAI,CAACF;YACdA,IAAIH,OAAOI,OAAO,CAACH,QAAQE,IAAI;QACjC;QACA,OAAOD;IACT;IAEA,MAAMA,WAAWH,gBAAgBV,OAAOO;IAExC,IAAIM,SAASI,MAAM,EAAE;QACnB,iDAAiD;QACjD,MAAMC,eAAe,IAAIC,OAAO,UAAU;QAE1C,KAAK,MAAMC,SAASP,SAAU;YAC5B,IAAI,CAACK,aAAaG,IAAI,CAACrB,KAAK,CAACoB,QAAQ,EAAE,GAAG;gBACxC,OAAO;YACT;QACF;IACF;IAEA,OAAO;AACT;AAEA,OAAO,MAAME,iCAAiC,CAC5CC,aAAyB,SAAS;IAElC,OAAOA,eAAe,YAAY,YAAY;AAChD,EAAE"}
1
+ {"version":3,"sources":["../../../src/lib/select.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { SelectType } from '../components/Select/Select';\nimport { getTextFromChildren } from './children';\n\nexport type Option = {\n value?: unknown;\n label?: React.ReactNode;\n [index: string]: any;\n};\n\nexport type GetOptionLabel<O extends Option> = (option: O) => O['label'];\n\nexport type FilterFn<O extends Option> = (\n inputValue: string,\n option: O,\n getOptionsLabel?: GetOptionLabel<O>,\n) => boolean;\n\nexport type SortFn<O extends Option> = (optionA: O, optionB: O, inputValue: string) => number;\n\nfunction getOptionLabelDefault<O extends Option>(option: O): O['label'] {\n return option.label;\n}\n\nexport function defaultFilterFn<O extends Option>(\n ...args: Parameters<FilterFn<O>>\n): ReturnType<FilterFn<O>> {\n const [rawSearchQuery = '', option, getOptionLabel] = args;\n const foundRawLabel = getOptionLabel ? getOptionLabel(option) : getOptionLabelDefault(option);\n\n if (foundRawLabel === undefined) {\n return false;\n }\n\n const searchQuery = rawSearchQuery.toLocaleLowerCase();\n const label = getTextFromChildren(foundRawLabel).toLocaleLowerCase();\n\n if (label.startsWith(searchQuery)) {\n return true;\n }\n\n const findAllIncludes = (target = '', search = '') => {\n const includes = [];\n let i = target.indexOf(search);\n while (i !== -1) {\n includes.push(i);\n i = target.indexOf(search, i + 1);\n }\n return includes;\n };\n\n const includes = findAllIncludes(label, searchQuery);\n\n if (includes.length) {\n // Ищем вхождение перед началом которого не буква\n const letterRegexp = new RegExp('\\\\p{L}', 'u');\n\n for (const index of includes) {\n if (!letterRegexp.test(label[index - 1])) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport const getFormFieldModeFromSelectType = (\n selectType: SelectType = 'default',\n): 'default' | 'plain' => {\n return selectType === 'default' ? 'default' : 'plain';\n};\n"],"names":["getTextFromChildren","getOptionLabelDefault","option","label","defaultFilterFn","args","rawSearchQuery","getOptionLabel","foundRawLabel","undefined","searchQuery","toLocaleLowerCase","startsWith","findAllIncludes","target","search","includes","i","indexOf","push","length","letterRegexp","RegExp","index","test","getFormFieldModeFromSelectType","selectType"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,gBAAa;AAkBjD,SAASC,sBAAwCC,MAAS;IACxD,OAAOA,OAAOC,KAAK;AACrB;AAEA,OAAO,SAASC,gBACd,GAAGC,IAA6B;IAEhC,MAAM,CAACC,iBAAiB,EAAE,EAAEJ,QAAQK,eAAe,GAAGF;IACtD,MAAMG,gBAAgBD,iBAAiBA,eAAeL,UAAUD,sBAAsBC;IAEtF,IAAIM,kBAAkBC,WAAW;QAC/B,OAAO;IACT;IAEA,MAAMC,cAAcJ,eAAeK,iBAAiB;IACpD,MAAMR,QAAQH,oBAAoBQ,eAAeG,iBAAiB;IAElE,IAAIR,MAAMS,UAAU,CAACF,cAAc;QACjC,OAAO;IACT;IAEA,MAAMG,kBAAkB,CAACC,SAAS,EAAE,EAAEC,SAAS,EAAE;QAC/C,MAAMC,WAAW,EAAE;QACnB,IAAIC,IAAIH,OAAOI,OAAO,CAACH;QACvB,MAAOE,MAAM,CAAC,EAAG;YACfD,SAASG,IAAI,CAACF;YACdA,IAAIH,OAAOI,OAAO,CAACH,QAAQE,IAAI;QACjC;QACA,OAAOD;IACT;IAEA,MAAMA,WAAWH,gBAAgBV,OAAOO;IAExC,IAAIM,SAASI,MAAM,EAAE;QACnB,iDAAiD;QACjD,MAAMC,eAAe,IAAIC,OAAO,UAAU;QAE1C,KAAK,MAAMC,SAASP,SAAU;YAC5B,IAAI,CAACK,aAAaG,IAAI,CAACrB,KAAK,CAACoB,QAAQ,EAAE,GAAG;gBACxC,OAAO;YACT;QACF;IACF;IAEA,OAAO;AACT;AAEA,OAAO,MAAME,iCAAiC,CAC5CC,aAAyB,SAAS;IAElC,OAAOA,eAAe,YAAY,YAAY;AAChD,EAAE"}
@@ -8,19 +8,6 @@ export class BottomSheetController {
8
8
  sheetEl;
9
9
  constructor(sheetEl, { sheetScrollEl, sheetTransitionController, backdropTransitionController, onSnapPointChange, onDismiss }){
10
10
  this.sheetEl = sheetEl;
11
- this.isInitialized = false;
12
- this.panState = 'idle';
13
- this.pannedEl = null;
14
- this.sheetHeight = 0;
15
- this.rafId = null;
16
- this.currentSnapPoint = 0;
17
- this.nextSnapPoint = 0;
18
- this.snapPointDetents = [
19
- 0,
20
- 0
21
- ];
22
- this.unit = '%';
23
- this.disableVerticalScrollBouncingDispose = noop;
24
11
  this.onSnapPointChange = onSnapPointChange;
25
12
  this.onDismiss = onDismiss;
26
13
  this.panGestureRecognizer = new UIPanGestureRecognizer();
@@ -111,19 +98,22 @@ export class BottomSheetController {
111
98
  this.disableVerticalScrollBouncingDispose();
112
99
  this.disableVerticalScrollBouncingDispose = noop;
113
100
  }
114
- isInitialized;
115
- panState;
116
- pannedEl;
117
- sheetHeight;
118
- rafId;
119
- currentSnapPoint;
120
- nextSnapPoint;
121
- snapPointDetents;
122
- unit;
101
+ isInitialized = false;
102
+ panState = 'idle';
103
+ pannedEl = null;
104
+ sheetHeight = 0;
105
+ rafId = null;
106
+ currentSnapPoint = 0;
107
+ nextSnapPoint = 0;
108
+ snapPointDetents = [
109
+ 0,
110
+ 0
111
+ ];
112
+ unit = '%';
123
113
  get isDynamicSnapPoint() {
124
114
  return this.unit === 'px';
125
115
  }
126
- disableVerticalScrollBouncingDispose;
116
+ disableVerticalScrollBouncingDispose = noop;
127
117
  sheetScrollEl;
128
118
  sheetTransitionController;
129
119
  backdropTransitionController;