@vkontakte/vkui 5.5.4 → 5.6.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 (1179) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
  3. package/dist/cjs/components/Accordion/AccordionSummary.js.map +1 -1
  4. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  5. package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
  6. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  7. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  8. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -2
  9. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  10. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  11. package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
  12. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  13. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  14. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  15. package/dist/cjs/components/AppRoot/AppRoot.js +6 -5
  16. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  17. package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
  18. package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
  19. package/dist/cjs/components/AppRoot/ScrollContext.js +5 -3
  20. package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
  21. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  22. package/dist/cjs/components/AspectRatio/AspectRatio.js.map +1 -1
  23. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  24. package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  25. package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  26. package/dist/cjs/components/Avatar/AvatarBadge/icons.js.map +1 -1
  27. package/dist/cjs/components/Avatar/helpers.js.map +1 -1
  28. package/dist/cjs/components/Badge/Badge.js.map +1 -1
  29. package/dist/cjs/components/Banner/Banner.d.ts +5 -1
  30. package/dist/cjs/components/Banner/Banner.js +4 -3
  31. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  32. package/dist/cjs/components/BaseGallery/BaseGallery.js +15 -9
  33. package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
  34. package/dist/cjs/components/BaseGallery/helpers.js.map +1 -1
  35. package/dist/cjs/components/Button/Button.d.ts +2 -1
  36. package/dist/cjs/components/Button/Button.js +5 -3
  37. package/dist/cjs/components/Button/Button.js.map +1 -1
  38. package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
  39. package/dist/cjs/components/Calendar/Calendar.js +2 -1
  40. package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
  41. package/dist/cjs/components/CalendarDay/CalendarDay.js +4 -2
  42. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  43. package/dist/cjs/components/CalendarDays/CalendarDays.js +6 -5
  44. package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
  45. package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
  46. package/dist/cjs/components/CalendarRange/CalendarRange.js +16 -8
  47. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
  48. package/dist/cjs/components/CalendarTime/CalendarTime.js +4 -2
  49. package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
  50. package/dist/cjs/components/Card/Card.js.map +1 -1
  51. package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
  52. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  53. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  54. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  55. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
  56. package/dist/cjs/components/Cell/useDraggable.js.map +1 -1
  57. package/dist/cjs/components/CellButton/CellButton.js.map +1 -1
  58. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  59. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  60. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  61. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
  62. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +10 -4
  63. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  64. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  65. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +20 -9
  66. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  67. package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
  68. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  69. package/dist/cjs/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  70. package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
  71. package/dist/cjs/components/Counter/Counter.js.map +1 -1
  72. package/dist/cjs/components/CustomScrollView/CustomScrollView.js +2 -1
  73. package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
  74. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  75. package/dist/cjs/components/CustomSelect/CustomSelect.js +15 -8
  76. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  77. package/dist/cjs/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  78. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +4 -2
  79. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  80. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  81. package/dist/cjs/components/DateInput/DateInput.js +4 -2
  82. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  83. package/dist/cjs/components/DatePicker/DatePicker.js +8 -5
  84. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  85. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +11 -7
  86. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  87. package/dist/cjs/components/Div/Div.js.map +1 -1
  88. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
  89. package/dist/cjs/components/Epic/Epic.d.ts +1 -0
  90. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  91. package/dist/cjs/components/Epic/ScrollSaver.js.map +1 -1
  92. package/dist/cjs/components/File/File.js.map +1 -1
  93. package/dist/cjs/components/FixedLayout/FixedLayout.js +2 -1
  94. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  95. package/dist/cjs/components/FocusTrap/FocusTrap.js +4 -3
  96. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  97. package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
  98. package/dist/cjs/components/Footer/Footer.js.map +1 -1
  99. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  100. package/dist/cjs/components/FormItem/FormItem.js +2 -1
  101. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  102. package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
  103. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  104. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  105. package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
  106. package/dist/cjs/components/Gallery/Gallery.js.map +1 -1
  107. package/dist/cjs/components/Gradient/Gradient.js.map +1 -1
  108. package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -1
  109. package/dist/cjs/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
  110. package/dist/cjs/components/Group/Group.d.ts +8 -8
  111. package/dist/cjs/components/Group/Group.js +1 -1
  112. package/dist/cjs/components/Group/Group.js.map +1 -1
  113. package/dist/cjs/components/Header/Header.js.map +1 -1
  114. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  115. package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
  116. package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.js +56 -0
  117. package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
  118. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +2 -2
  119. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  120. package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -1
  121. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  122. package/dist/cjs/components/Image/Image.js.map +1 -1
  123. package/dist/cjs/components/Image/ImageBadge/ImageBadge.js.map +1 -1
  124. package/dist/cjs/components/ImageBase/ImageBase.js +4 -2
  125. package/dist/cjs/components/ImageBase/ImageBase.js.map +1 -1
  126. package/dist/cjs/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  127. package/dist/cjs/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  128. package/dist/cjs/components/ImageBase/context.js.map +1 -1
  129. package/dist/cjs/components/ImageBase/helpers.js.map +1 -1
  130. package/dist/cjs/components/ImageBase/validators.js +3 -4
  131. package/dist/cjs/components/ImageBase/validators.js.map +1 -1
  132. package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
  133. package/dist/cjs/components/Input/Input.js.map +1 -1
  134. package/dist/cjs/components/InputLike/InputLike.js +6 -4
  135. package/dist/cjs/components/InputLike/InputLike.js.map +1 -1
  136. package/dist/cjs/components/InputLike/InputLikeDivider.js.map +1 -1
  137. package/dist/cjs/components/Link/Link.js.map +1 -1
  138. package/dist/cjs/components/List/List.js.map +1 -1
  139. package/dist/cjs/components/List/ListContext.js.map +1 -1
  140. package/dist/cjs/components/LocaleProvider/LocaleProvider.js.map +1 -1
  141. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  142. package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
  143. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +9 -8
  144. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  145. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  146. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  147. package/dist/cjs/components/ModalPage/ModalPageContext.js.map +1 -1
  148. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  149. package/dist/cjs/components/ModalRoot/ModalRoot.js +21 -15
  150. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  151. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  152. package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
  153. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +12 -6
  154. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  155. package/dist/cjs/components/ModalRoot/types.d.ts +4 -2
  156. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  157. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
  158. package/dist/cjs/components/ModalRoot/useModalRootContext.js.map +1 -1
  159. package/dist/cjs/components/ModalRoot/withModalRootContext.js.map +1 -1
  160. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  161. package/dist/cjs/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
  162. package/dist/cjs/components/Pagination/Pagination.js +2 -1
  163. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  164. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  165. package/dist/cjs/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
  166. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  167. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  168. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  169. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  170. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  171. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  172. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  173. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  174. package/dist/cjs/components/PanelSpinner/PanelSpinner.js.map +1 -1
  175. package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
  176. package/dist/cjs/components/PlatformProvider/PlatformProvider.js.map +1 -1
  177. package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
  178. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  179. package/dist/cjs/components/Popover/Popover.js.map +1 -1
  180. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  181. package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -1
  182. package/dist/cjs/components/Progress/Progress.js.map +1 -1
  183. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  184. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +2 -1
  185. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  186. package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  187. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  188. package/dist/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  189. package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -1
  190. package/dist/cjs/components/Removable/Removable.js +2 -2
  191. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  192. package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
  193. package/dist/cjs/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
  194. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
  195. package/dist/cjs/components/Root/Root.d.ts +1 -0
  196. package/dist/cjs/components/Root/Root.js.map +1 -1
  197. package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  198. package/dist/cjs/components/ScrollArrow/ScrollArrow.js.map +1 -1
  199. package/dist/cjs/components/Search/Search.js +2 -2
  200. package/dist/cjs/components/Search/Search.js.map +1 -1
  201. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  202. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  203. package/dist/cjs/components/Select/Select.js.map +1 -1
  204. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  205. package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
  206. package/dist/cjs/components/Separator/Separator.js.map +1 -1
  207. package/dist/cjs/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
  208. package/dist/cjs/components/SimpleCell/Chevron/Chevron.js +27 -0
  209. package/dist/cjs/components/SimpleCell/Chevron/Chevron.js.map +1 -0
  210. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +6 -2
  211. package/dist/cjs/components/SimpleCell/SimpleCell.js +16 -5
  212. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  213. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  214. package/dist/cjs/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  215. package/dist/cjs/components/Slider/helpers.js.map +1 -1
  216. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  217. package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
  218. package/dist/cjs/components/Spinner/Spinner.d.ts +2 -1
  219. package/dist/cjs/components/Spinner/Spinner.js +19 -4
  220. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  221. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  222. package/dist/cjs/components/SplitCol/SplitColContext.js.map +1 -1
  223. package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
  224. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  225. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  226. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  227. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  228. package/dist/cjs/components/TabbarItem/TabbarItem.js +1 -1
  229. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  230. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  231. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  232. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  233. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
  234. package/dist/cjs/components/Textarea/Textarea.js +2 -1
  235. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  236. package/dist/cjs/components/Tooltip/Tooltip.js +4 -2
  237. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  238. package/dist/cjs/components/Tooltip/TooltipContainer.js.map +1 -1
  239. package/dist/cjs/components/Touch/Touch.js +1 -1
  240. package/dist/cjs/components/Touch/Touch.js.map +1 -1
  241. package/dist/cjs/components/Touch/TouchContext.js.map +1 -1
  242. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  243. package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
  244. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  245. package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
  246. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  247. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  248. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  249. package/dist/cjs/components/Typography/Typography.js.map +1 -1
  250. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  251. package/dist/cjs/components/View/View.d.ts +1 -0
  252. package/dist/cjs/components/View/View.js +16 -8
  253. package/dist/cjs/components/View/View.js.map +1 -1
  254. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  255. package/dist/cjs/components/View/utils.js +2 -2
  256. package/dist/cjs/components/View/utils.js.map +1 -1
  257. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  258. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  259. package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
  260. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  261. package/dist/cjs/helpers/appearance.js.map +1 -1
  262. package/dist/cjs/helpers/generateVKUITokensClassName.js.map +1 -1
  263. package/dist/cjs/helpers/getPlatformClassName.js.map +1 -1
  264. package/dist/cjs/helpers/math.js.map +1 -1
  265. package/dist/cjs/helpers/range.js.map +1 -1
  266. package/dist/cjs/hoc/withContext.js.map +1 -1
  267. package/dist/cjs/hoc/withInsets.js.map +1 -1
  268. package/dist/cjs/hoc/withPlatform.js.map +1 -1
  269. package/dist/cjs/hooks/useAdaptivity.js.map +1 -1
  270. package/dist/cjs/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
  271. package/dist/cjs/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
  272. package/dist/cjs/hooks/useAdaptivityConditionalRender/index.js.map +1 -1
  273. package/dist/cjs/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
  274. package/dist/cjs/hooks/useAdaptivityHasHover.js.map +1 -1
  275. package/dist/cjs/hooks/useAdaptivityHasPointer.js.map +1 -1
  276. package/dist/cjs/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  277. package/dist/cjs/hooks/useAppearance.js.map +1 -1
  278. package/dist/cjs/hooks/useAutoDetectAppearance.js +2 -1
  279. package/dist/cjs/hooks/useAutoDetectAppearance.js.map +1 -1
  280. package/dist/cjs/hooks/useBooleanState.js.map +1 -1
  281. package/dist/cjs/hooks/useBridgeAdaptivity.js.map +1 -1
  282. package/dist/cjs/hooks/useCalendar.js +6 -3
  283. package/dist/cjs/hooks/useCalendar.js.map +1 -1
  284. package/dist/cjs/hooks/useChipsInput.js +2 -1
  285. package/dist/cjs/hooks/useChipsInput.js.map +1 -1
  286. package/dist/cjs/hooks/useChipsSelect.js.map +1 -1
  287. package/dist/cjs/hooks/useDateInput.js +5 -3
  288. package/dist/cjs/hooks/useDateInput.js.map +1 -1
  289. package/dist/cjs/hooks/useEffectDev.js.map +1 -1
  290. package/dist/cjs/hooks/useEnsuredControl.js.map +1 -1
  291. package/dist/cjs/hooks/useEventListener.js.map +1 -1
  292. package/dist/cjs/hooks/useExternRef.js.map +1 -1
  293. package/dist/cjs/hooks/useFocusVisible.js.map +1 -1
  294. package/dist/cjs/hooks/useFocusWithin.js.map +1 -1
  295. package/dist/cjs/hooks/useGlobalEventListener.js.map +1 -1
  296. package/dist/cjs/hooks/useId.js.map +1 -1
  297. package/dist/cjs/hooks/useInsets.js.map +1 -1
  298. package/dist/cjs/hooks/useIsClient.js.map +1 -1
  299. package/dist/cjs/hooks/useKeyboard.js +4 -4
  300. package/dist/cjs/hooks/useKeyboard.js.map +1 -1
  301. package/dist/cjs/hooks/useKeyboardInputTracker.js.map +1 -1
  302. package/dist/cjs/hooks/useMediaQueries.js.map +1 -1
  303. package/dist/cjs/hooks/useObjectMemo.js.map +1 -1
  304. package/dist/cjs/hooks/useOrientationChange.js +1 -1
  305. package/dist/cjs/hooks/useOrientationChange.js.map +1 -1
  306. package/dist/cjs/hooks/usePagination.js.map +1 -1
  307. package/dist/cjs/hooks/usePatchChildrenRef.js +2 -1
  308. package/dist/cjs/hooks/usePatchChildrenRef.js.map +1 -1
  309. package/dist/cjs/hooks/usePlatform.js.map +1 -1
  310. package/dist/cjs/hooks/usePrevious.js.map +1 -1
  311. package/dist/cjs/hooks/useTimeout.js +2 -1
  312. package/dist/cjs/hooks/useTimeout.js.map +1 -1
  313. package/dist/cjs/hooks/useTodayDate.js.map +1 -1
  314. package/dist/cjs/hooks/useWaitTransitionFinish.js +4 -2
  315. package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
  316. package/dist/cjs/index.d.ts +3 -1
  317. package/dist/cjs/index.js +4 -0
  318. package/dist/cjs/index.js.map +1 -1
  319. package/dist/cjs/lib/SSR.js.map +1 -1
  320. package/dist/cjs/lib/accessibility.js.map +1 -1
  321. package/dist/cjs/lib/adaptivity/constants.js.map +1 -1
  322. package/dist/cjs/lib/adaptivity/functions.js.map +1 -1
  323. package/dist/cjs/lib/animate.js.map +1 -1
  324. package/dist/cjs/lib/browser.js.map +1 -1
  325. package/dist/cjs/lib/calendar.js.map +1 -1
  326. package/dist/cjs/lib/callMultiple.js.map +1 -1
  327. package/dist/cjs/lib/date.js.map +1 -1
  328. package/dist/cjs/lib/dom.js.map +1 -1
  329. package/dist/cjs/lib/floating/adapters.js.map +1 -1
  330. package/dist/cjs/lib/floating/functions.js.map +1 -1
  331. package/dist/cjs/lib/floating/index.js.map +1 -1
  332. package/dist/cjs/lib/fx.js.map +1 -1
  333. package/dist/cjs/lib/getNavId.js.map +1 -1
  334. package/dist/cjs/lib/isRefObject.js.map +1 -1
  335. package/dist/cjs/lib/matchMedia.js.map +1 -1
  336. package/dist/cjs/lib/offset.js +6 -5
  337. package/dist/cjs/lib/offset.js.map +1 -1
  338. package/dist/cjs/lib/platform.js.map +1 -1
  339. package/dist/cjs/lib/polyfills.js.map +1 -1
  340. package/dist/cjs/lib/removeObjectKeys.js.map +1 -1
  341. package/dist/cjs/lib/select.js +2 -2
  342. package/dist/cjs/lib/select.js.map +1 -1
  343. package/dist/cjs/lib/styles.js.map +1 -1
  344. package/dist/cjs/lib/supportEvents.js.map +1 -1
  345. package/dist/cjs/lib/taptic.js.map +1 -1
  346. package/dist/cjs/lib/testing.js.map +1 -1
  347. package/dist/cjs/lib/tokensClassProvider.js.map +1 -1
  348. package/dist/cjs/lib/touch.js.map +1 -1
  349. package/dist/cjs/lib/useIsomorphicLayoutEffect.js.map +1 -1
  350. package/dist/cjs/lib/utils.js.map +1 -1
  351. package/dist/cjs/lib/warnOnce.js.map +1 -1
  352. package/dist/cjs/shared/breakpoints.js.map +1 -1
  353. package/dist/components/Accordion/Accordion.js.map +1 -1
  354. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  355. package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
  356. package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  357. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -2
  358. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  359. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  360. package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
  361. package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  362. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  363. package/dist/components/Alert/Alert.js.map +1 -1
  364. package/dist/components/AppRoot/AppRoot.js +6 -5
  365. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  366. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  367. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  368. package/dist/components/AppRoot/ScrollContext.js +5 -3
  369. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  370. package/dist/components/Avatar/Avatar.js.map +1 -1
  371. package/dist/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  372. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  373. package/dist/components/Avatar/helpers.js.map +1 -1
  374. package/dist/components/Banner/Banner.d.ts +5 -1
  375. package/dist/components/Banner/Banner.js +4 -3
  376. package/dist/components/Banner/Banner.js.map +1 -1
  377. package/dist/components/BaseGallery/BaseGallery.js +15 -9
  378. package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
  379. package/dist/components/BaseGallery/helpers.js.map +1 -1
  380. package/dist/components/Button/Button.d.ts +2 -1
  381. package/dist/components/Button/Button.js +5 -3
  382. package/dist/components/Button/Button.js.map +1 -1
  383. package/dist/components/Calendar/Calendar.js +2 -1
  384. package/dist/components/Calendar/Calendar.js.map +1 -1
  385. package/dist/components/CalendarDay/CalendarDay.js +4 -2
  386. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  387. package/dist/components/CalendarDays/CalendarDays.js +6 -5
  388. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  389. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  390. package/dist/components/CalendarRange/CalendarRange.js +16 -8
  391. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  392. package/dist/components/CalendarTime/CalendarTime.js +4 -2
  393. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  394. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  395. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  396. package/dist/components/Cell/Cell.js.map +1 -1
  397. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  398. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
  399. package/dist/components/Cell/useDraggable.js.map +1 -1
  400. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  401. package/dist/components/Chip/Chip.js.map +1 -1
  402. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  403. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
  404. package/dist/components/ChipsInputBase/ChipsInputBase.js +10 -4
  405. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  406. package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  407. package/dist/components/ChipsSelect/ChipsSelect.js +20 -9
  408. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  409. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  410. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  411. package/dist/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  412. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  413. package/dist/components/Counter/Counter.js.map +1 -1
  414. package/dist/components/CustomScrollView/CustomScrollView.js +2 -1
  415. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  416. package/dist/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  417. package/dist/components/CustomSelect/CustomSelect.js +15 -8
  418. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  419. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +4 -2
  420. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  421. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  422. package/dist/components/DateInput/DateInput.js +4 -2
  423. package/dist/components/DateInput/DateInput.js.map +1 -1
  424. package/dist/components/DatePicker/DatePicker.js +8 -5
  425. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  426. package/dist/components/DateRangeInput/DateRangeInput.js +11 -7
  427. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  428. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  429. package/dist/components/Epic/Epic.d.ts +1 -0
  430. package/dist/components/Epic/Epic.js.map +1 -1
  431. package/dist/components/Epic/ScrollSaver.js.map +1 -1
  432. package/dist/components/File/File.js.map +1 -1
  433. package/dist/components/FixedLayout/FixedLayout.js +2 -1
  434. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  435. package/dist/components/FocusTrap/FocusTrap.js +4 -3
  436. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  437. package/dist/components/FormField/FormField.js.map +1 -1
  438. package/dist/components/FormItem/FormItem.js +2 -1
  439. package/dist/components/FormItem/FormItem.js.map +1 -1
  440. package/dist/components/FormLayout/FormLayout.js.map +1 -1
  441. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  442. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  443. package/dist/components/Gallery/Gallery.js.map +1 -1
  444. package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
  445. package/dist/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
  446. package/dist/components/Group/Group.d.ts +8 -8
  447. package/dist/components/Group/Group.js +1 -1
  448. package/dist/components/Group/Group.js.map +1 -1
  449. package/dist/components/Header/Header.js.map +1 -1
  450. package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
  451. package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.js +45 -0
  452. package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
  453. package/dist/components/HorizontalScroll/HorizontalScroll.js +2 -2
  454. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  455. package/dist/components/HoverPopper/HoverPopper.js.map +1 -1
  456. package/dist/components/IconButton/IconButton.js.map +1 -1
  457. package/dist/components/Image/Image.js.map +1 -1
  458. package/dist/components/Image/ImageBadge/ImageBadge.js.map +1 -1
  459. package/dist/components/ImageBase/ImageBase.js +4 -2
  460. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  461. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  462. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  463. package/dist/components/ImageBase/context.js.map +1 -1
  464. package/dist/components/ImageBase/helpers.js.map +1 -1
  465. package/dist/components/ImageBase/validators.js +3 -4
  466. package/dist/components/ImageBase/validators.js.map +1 -1
  467. package/dist/components/Input/Input.js.map +1 -1
  468. package/dist/components/InputLike/InputLike.js +6 -4
  469. package/dist/components/InputLike/InputLike.js.map +1 -1
  470. package/dist/components/Link/Link.js.map +1 -1
  471. package/dist/components/List/List.js.map +1 -1
  472. package/dist/components/List/ListContext.js.map +1 -1
  473. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  474. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  475. package/dist/components/ModalCardBase/ModalCardBase.js +9 -8
  476. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  477. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  478. package/dist/components/ModalPage/ModalPageContext.js.map +1 -1
  479. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  480. package/dist/components/ModalRoot/ModalRoot.js +21 -15
  481. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  482. package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  483. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  484. package/dist/components/ModalRoot/ModalRootDesktop.js +12 -6
  485. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  486. package/dist/components/ModalRoot/types.d.ts +4 -2
  487. package/dist/components/ModalRoot/types.js.map +1 -1
  488. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  489. package/dist/components/ModalRoot/useModalRootContext.js.map +1 -1
  490. package/dist/components/ModalRoot/withModalRootContext.js.map +1 -1
  491. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  492. package/dist/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
  493. package/dist/components/Pagination/Pagination.js +2 -1
  494. package/dist/components/Pagination/Pagination.js.map +1 -1
  495. package/dist/components/Panel/Panel.js.map +1 -1
  496. package/dist/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
  497. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  498. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  499. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  500. package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  501. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  502. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  503. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  504. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  505. package/dist/components/PanelSpinner/PanelSpinner.js.map +1 -1
  506. package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
  507. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  508. package/dist/components/Popover/Popover.js.map +1 -1
  509. package/dist/components/Popper/Popper.js.map +1 -1
  510. package/dist/components/PopperArrow/PopperArrow.js.map +1 -1
  511. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  512. package/dist/components/PullToRefresh/PullToRefresh.js +2 -1
  513. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  514. package/dist/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  515. package/dist/components/Radio/Radio.js.map +1 -1
  516. package/dist/components/Removable/Removable.js +2 -2
  517. package/dist/components/Removable/Removable.js.map +1 -1
  518. package/dist/components/RichCell/RichCell.js.map +1 -1
  519. package/dist/components/Root/Root.d.ts +1 -0
  520. package/dist/components/Root/Root.js.map +1 -1
  521. package/dist/components/Search/Search.js +2 -2
  522. package/dist/components/Search/Search.js.map +1 -1
  523. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  524. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  525. package/dist/components/Select/Select.js.map +1 -1
  526. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  527. package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
  528. package/dist/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
  529. package/dist/components/SimpleCell/Chevron/Chevron.js +16 -0
  530. package/dist/components/SimpleCell/Chevron/Chevron.js.map +1 -0
  531. package/dist/components/SimpleCell/SimpleCell.d.ts +6 -2
  532. package/dist/components/SimpleCell/SimpleCell.js +16 -5
  533. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  534. package/dist/components/Slider/Slider.js.map +1 -1
  535. package/dist/components/Slider/helpers.js.map +1 -1
  536. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  537. package/dist/components/Spinner/Spinner.d.ts +2 -1
  538. package/dist/components/Spinner/Spinner.js +19 -4
  539. package/dist/components/Spinner/Spinner.js.map +1 -1
  540. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  541. package/dist/components/SplitCol/SplitColContext.js.map +1 -1
  542. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  543. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  544. package/dist/components/Switch/Switch.js.map +1 -1
  545. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  546. package/dist/components/TabbarItem/TabbarItem.js +1 -1
  547. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  548. package/dist/components/Tabs/Tabs.js.map +1 -1
  549. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  550. package/dist/components/Tappable/Tappable.js.map +1 -1
  551. package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
  552. package/dist/components/Textarea/Textarea.js +2 -1
  553. package/dist/components/Textarea/Textarea.js.map +1 -1
  554. package/dist/components/Tooltip/Tooltip.js +4 -2
  555. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  556. package/dist/components/Tooltip/TooltipContainer.js.map +1 -1
  557. package/dist/components/Touch/Touch.js +1 -1
  558. package/dist/components/Touch/Touch.js.map +1 -1
  559. package/dist/components/Touch/TouchContext.js.map +1 -1
  560. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  561. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  562. package/dist/components/Typography/Text/Text.js.map +1 -1
  563. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  564. package/dist/components/View/View.d.ts +1 -0
  565. package/dist/components/View/View.js +16 -8
  566. package/dist/components/View/View.js.map +1 -1
  567. package/dist/components/View/ViewInfinite.js.map +1 -1
  568. package/dist/components/View/utils.js +2 -2
  569. package/dist/components/View/utils.js.map +1 -1
  570. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  571. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  572. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  573. package/dist/components.css +10 -9
  574. package/dist/components.css.map +1 -1
  575. package/dist/components.js.tmp +3108 -2238
  576. package/dist/cssm/components/Accordion/Accordion.js +1 -1
  577. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  578. package/dist/cssm/components/Accordion/AccordionSummary.js +1 -1
  579. package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
  580. package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -2
  581. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  582. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  583. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +3 -3
  584. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  585. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -3
  586. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  587. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +3 -3
  588. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  589. package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js +2 -2
  590. package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
  591. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  592. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +3 -3
  593. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  594. package/dist/cssm/components/Alert/Alert.js +6 -6
  595. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  596. package/dist/cssm/components/AppRoot/AppRoot.js +3 -3
  597. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  598. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  599. package/dist/cssm/components/AppRoot/AppRootPortal.js +2 -2
  600. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  601. package/dist/cssm/components/AppRoot/ScrollContext.js +5 -5
  602. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  603. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js +1 -1
  604. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  605. package/dist/cssm/components/AspectRatio/AspectRatio.js +1 -1
  606. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  607. package/dist/cssm/components/Avatar/Avatar.js +1 -1
  608. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  609. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.js +2 -2
  610. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  611. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +2 -2
  612. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  613. package/dist/cssm/components/Avatar/AvatarBadge/icons.js +2 -2
  614. package/dist/cssm/components/Avatar/AvatarBadge/icons.js.map +1 -1
  615. package/dist/cssm/components/Avatar/helpers.js.map +1 -1
  616. package/dist/cssm/components/Badge/Badge.js +1 -1
  617. package/dist/cssm/components/Badge/Badge.js.map +1 -1
  618. package/dist/cssm/components/Banner/Banner.d.ts +5 -1
  619. package/dist/cssm/components/Banner/Banner.js +2 -2
  620. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  621. package/dist/cssm/components/Banner/Banner.module.css +6 -1
  622. package/dist/cssm/components/BaseGallery/BaseGallery.js +3 -3
  623. package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
  624. package/dist/cssm/components/BaseGallery/helpers.js +4 -4
  625. package/dist/cssm/components/BaseGallery/helpers.js.map +1 -1
  626. package/dist/cssm/components/Button/Button.d.ts +2 -1
  627. package/dist/cssm/components/Button/Button.js +4 -3
  628. package/dist/cssm/components/Button/Button.js.map +1 -1
  629. package/dist/cssm/components/ButtonGroup/ButtonGroup.js +1 -1
  630. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  631. package/dist/cssm/components/Calendar/Calendar.js +2 -2
  632. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  633. package/dist/cssm/components/CalendarDay/CalendarDay.js +2 -2
  634. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  635. package/dist/cssm/components/CalendarDays/CalendarDays.js +2 -2
  636. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  637. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +7 -7
  638. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  639. package/dist/cssm/components/CalendarRange/CalendarRange.js +2 -2
  640. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  641. package/dist/cssm/components/CalendarTime/CalendarTime.js +1 -1
  642. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  643. package/dist/cssm/components/Card/Card.js +1 -1
  644. package/dist/cssm/components/Card/Card.js.map +1 -1
  645. package/dist/cssm/components/CardGrid/CardGrid.js +2 -2
  646. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  647. package/dist/cssm/components/CardScroll/CardScroll.js +2 -2
  648. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  649. package/dist/cssm/components/Cell/Cell.js +3 -3
  650. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  651. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +1 -1
  652. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  653. package/dist/cssm/components/Cell/CellDragger/CellDragger.js +1 -1
  654. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  655. package/dist/cssm/components/Cell/useDraggable.js +1 -1
  656. package/dist/cssm/components/Cell/useDraggable.js.map +1 -1
  657. package/dist/cssm/components/CellButton/CellButton.js +1 -1
  658. package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
  659. package/dist/cssm/components/Checkbox/Checkbox.js +3 -3
  660. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  661. package/dist/cssm/components/Chip/Chip.js +2 -2
  662. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  663. package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -1
  664. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  665. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
  666. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +9 -5
  667. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  668. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  669. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +13 -5
  670. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  671. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +2 -2
  672. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  673. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  674. package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js +1 -1
  675. package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  676. package/dist/cssm/components/ContentCard/ContentCard.js +3 -3
  677. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  678. package/dist/cssm/components/Counter/Counter.js +1 -1
  679. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  680. package/dist/cssm/components/CustomScrollView/CustomScrollView.js +3 -3
  681. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  682. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js +1 -1
  683. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  684. package/dist/cssm/components/CustomSelect/CustomSelect.js +4 -4
  685. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  686. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js +1 -1
  687. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  688. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -2
  689. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  690. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +2 -2
  691. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  692. package/dist/cssm/components/DateInput/DateInput.js +3 -3
  693. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  694. package/dist/cssm/components/DatePicker/DatePicker.js +8 -8
  695. package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
  696. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +3 -3
  697. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  698. package/dist/cssm/components/Div/Div.js +1 -1
  699. package/dist/cssm/components/Div/Div.js.map +1 -1
  700. package/dist/cssm/components/DropdownIcon/DropdownIcon.js +2 -2
  701. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  702. package/dist/cssm/components/Epic/Epic.d.ts +1 -0
  703. package/dist/cssm/components/Epic/Epic.js +1 -1
  704. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  705. package/dist/cssm/components/Epic/ScrollSaver.js +2 -2
  706. package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
  707. package/dist/cssm/components/File/File.js +1 -1
  708. package/dist/cssm/components/File/File.js.map +1 -1
  709. package/dist/cssm/components/FixedLayout/FixedLayout.js +3 -3
  710. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  711. package/dist/cssm/components/FocusTrap/FocusTrap.js +4 -4
  712. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  713. package/dist/cssm/components/FocusVisible/FocusVisible.js +1 -1
  714. package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
  715. package/dist/cssm/components/Footer/Footer.js +1 -1
  716. package/dist/cssm/components/Footer/Footer.js.map +1 -1
  717. package/dist/cssm/components/FormField/FormField.js +2 -2
  718. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  719. package/dist/cssm/components/FormItem/FormItem.js +2 -2
  720. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  721. package/dist/cssm/components/FormLayout/FormLayout.js +1 -1
  722. package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
  723. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +2 -2
  724. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  725. package/dist/cssm/components/FormStatus/FormStatus.js +1 -1
  726. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  727. package/dist/cssm/components/Gallery/Gallery.js +1 -1
  728. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  729. package/dist/cssm/components/Gradient/Gradient.js +1 -1
  730. package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
  731. package/dist/cssm/components/GridAvatar/GridAvatar.js +1 -1
  732. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
  733. package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js +2 -2
  734. package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
  735. package/dist/cssm/components/Group/Group.d.ts +8 -8
  736. package/dist/cssm/components/Group/Group.js +4 -4
  737. package/dist/cssm/components/Group/Group.js.map +1 -1
  738. package/dist/cssm/components/Group/Group.module.css +2 -0
  739. package/dist/cssm/components/Header/Header.js +2 -2
  740. package/dist/cssm/components/Header/Header.js.map +1 -1
  741. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +3 -3
  742. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  743. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +0 -5
  744. package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
  745. package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.js +35 -0
  746. package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
  747. package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.module.css +47 -0
  748. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +2 -2
  749. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  750. package/dist/cssm/components/HoverPopper/HoverPopper.js +1 -1
  751. package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -1
  752. package/dist/cssm/components/IconButton/IconButton.js +2 -2
  753. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  754. package/dist/cssm/components/Image/Image.js +1 -1
  755. package/dist/cssm/components/Image/Image.js.map +1 -1
  756. package/dist/cssm/components/Image/ImageBadge/ImageBadge.js +2 -2
  757. package/dist/cssm/components/Image/ImageBadge/ImageBadge.js.map +1 -1
  758. package/dist/cssm/components/ImageBase/ImageBase.js +1 -1
  759. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  760. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js +2 -2
  761. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  762. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +2 -2
  763. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  764. package/dist/cssm/components/ImageBase/context.js.map +1 -1
  765. package/dist/cssm/components/ImageBase/helpers.js.map +1 -1
  766. package/dist/cssm/components/ImageBase/validators.js +3 -4
  767. package/dist/cssm/components/ImageBase/validators.js.map +1 -1
  768. package/dist/cssm/components/InfoRow/InfoRow.js +1 -1
  769. package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
  770. package/dist/cssm/components/Input/Input.js +2 -2
  771. package/dist/cssm/components/Input/Input.js.map +1 -1
  772. package/dist/cssm/components/InputLike/InputLike.js +1 -1
  773. package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
  774. package/dist/cssm/components/InputLike/InputLikeDivider.js +1 -1
  775. package/dist/cssm/components/InputLike/InputLikeDivider.js.map +1 -1
  776. package/dist/cssm/components/Link/Link.js +1 -1
  777. package/dist/cssm/components/Link/Link.js.map +1 -1
  778. package/dist/cssm/components/List/List.js +1 -1
  779. package/dist/cssm/components/List/List.js.map +1 -1
  780. package/dist/cssm/components/List/ListContext.js.map +1 -1
  781. package/dist/cssm/components/LocaleProvider/LocaleProvider.js +1 -1
  782. package/dist/cssm/components/LocaleProvider/LocaleProvider.js.map +1 -1
  783. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +1 -1
  784. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  785. package/dist/cssm/components/ModalCard/ModalCard.js +3 -3
  786. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  787. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +11 -10
  788. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  789. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +4 -5
  790. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -1
  791. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  792. package/dist/cssm/components/ModalPage/ModalPage.js +4 -4
  793. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  794. package/dist/cssm/components/ModalPage/ModalPage.module.css +5 -1
  795. package/dist/cssm/components/ModalPage/ModalPageContext.js.map +1 -1
  796. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +3 -3
  797. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  798. package/dist/cssm/components/ModalRoot/ModalRoot.js +12 -12
  799. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  800. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js +1 -1
  801. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  802. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  803. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +7 -7
  804. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  805. package/dist/cssm/components/ModalRoot/types.d.ts +4 -2
  806. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  807. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  808. package/dist/cssm/components/ModalRoot/useModalRootContext.js.map +1 -1
  809. package/dist/cssm/components/ModalRoot/withModalRootContext.js +1 -1
  810. package/dist/cssm/components/ModalRoot/withModalRootContext.js.map +1 -1
  811. package/dist/cssm/components/NativeSelect/NativeSelect.js +2 -2
  812. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  813. package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js +1 -1
  814. package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
  815. package/dist/cssm/components/Pagination/Pagination.js +2 -2
  816. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  817. package/dist/cssm/components/Panel/Panel.js +2 -2
  818. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  819. package/dist/cssm/components/PanelHeader/LegacyPanelHeaderContent.js +1 -1
  820. package/dist/cssm/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
  821. package/dist/cssm/components/PanelHeader/PanelHeader.js +9 -9
  822. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  823. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +2 -2
  824. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  825. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +2 -2
  826. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  827. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
  828. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  829. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +2 -2
  830. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  831. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
  832. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  833. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
  834. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  835. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
  836. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  837. package/dist/cssm/components/PanelSpinner/PanelSpinner.js +1 -1
  838. package/dist/cssm/components/PanelSpinner/PanelSpinner.js.map +1 -1
  839. package/dist/cssm/components/Placeholder/Placeholder.js +1 -1
  840. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  841. package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
  842. package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
  843. package/dist/cssm/components/PopoutRoot/PopoutRoot.js +5 -5
  844. package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
  845. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +2 -2
  846. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  847. package/dist/cssm/components/Popover/Popover.js +3 -3
  848. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  849. package/dist/cssm/components/Popper/Popper.js +3 -3
  850. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  851. package/dist/cssm/components/PopperArrow/PopperArrow.js +1 -1
  852. package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -1
  853. package/dist/cssm/components/Progress/Progress.js +1 -1
  854. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  855. package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -1
  856. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  857. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +6 -6
  858. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  859. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js +1 -1
  860. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  861. package/dist/cssm/components/Radio/Radio.js +2 -2
  862. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  863. package/dist/cssm/components/RadioGroup/RadioGroup.js +1 -1
  864. package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
  865. package/dist/cssm/components/RangeSlider/RangeSlider.js +2 -2
  866. package/dist/cssm/components/RangeSlider/RangeSlider.js.map +1 -1
  867. package/dist/cssm/components/Removable/Removable.js +4 -4
  868. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  869. package/dist/cssm/components/RichCell/RichCell.js +2 -2
  870. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  871. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js +1 -1
  872. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
  873. package/dist/cssm/components/RichTooltip/RichTooltip.js +1 -1
  874. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
  875. package/dist/cssm/components/Root/Root.d.ts +1 -0
  876. package/dist/cssm/components/Root/Root.js +5 -5
  877. package/dist/cssm/components/Root/Root.js.map +1 -1
  878. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +1 -1
  879. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  880. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +3 -3
  881. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  882. package/dist/cssm/components/Search/Search.js +3 -3
  883. package/dist/cssm/components/Search/Search.js.map +1 -1
  884. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +3 -3
  885. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  886. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +3 -3
  887. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  888. package/dist/cssm/components/Select/Select.js +3 -3
  889. package/dist/cssm/components/Select/Select.js.map +1 -1
  890. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +2 -2
  891. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  892. package/dist/cssm/components/SelectTypography/SelectTypography.js +2 -2
  893. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
  894. package/dist/cssm/components/Separator/Separator.js +1 -1
  895. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  896. package/dist/cssm/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
  897. package/dist/cssm/components/SimpleCell/Chevron/Chevron.js +12 -0
  898. package/dist/cssm/components/SimpleCell/Chevron/Chevron.js.map +1 -0
  899. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +6 -2
  900. package/dist/cssm/components/SimpleCell/SimpleCell.js +15 -5
  901. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  902. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +5 -6
  903. package/dist/cssm/components/Slider/Slider.js +7 -7
  904. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  905. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js +2 -2
  906. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  907. package/dist/cssm/components/Slider/helpers.js.map +1 -1
  908. package/dist/cssm/components/Snackbar/Snackbar.js +4 -4
  909. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  910. package/dist/cssm/components/Spacing/Spacing.js +1 -1
  911. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  912. package/dist/cssm/components/Spinner/Spinner.d.ts +2 -1
  913. package/dist/cssm/components/Spinner/Spinner.js +19 -5
  914. package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
  915. package/dist/cssm/components/Spinner/Spinner.module.css +0 -19
  916. package/dist/cssm/components/SplitCol/SplitCol.js +3 -3
  917. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  918. package/dist/cssm/components/SplitCol/SplitColContext.js.map +1 -1
  919. package/dist/cssm/components/SplitLayout/SplitLayout.js +1 -1
  920. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  921. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +1 -1
  922. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  923. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +3 -3
  924. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  925. package/dist/cssm/components/Switch/Switch.js +3 -3
  926. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  927. package/dist/cssm/components/Tabbar/Tabbar.js +1 -1
  928. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  929. package/dist/cssm/components/TabbarItem/TabbarItem.js +2 -2
  930. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  931. package/dist/cssm/components/Tabs/Tabs.js +2 -2
  932. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  933. package/dist/cssm/components/TabsItem/TabsItem.js +3 -3
  934. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  935. package/dist/cssm/components/Tappable/Tappable.js +10 -10
  936. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  937. package/dist/cssm/components/Tappable/Tappable.module.css +2 -0
  938. package/dist/cssm/components/TextTooltip/TextTooltip.js +1 -1
  939. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
  940. package/dist/cssm/components/Textarea/Textarea.js +2 -2
  941. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  942. package/dist/cssm/components/Tooltip/Tooltip.js +5 -5
  943. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  944. package/dist/cssm/components/Tooltip/TooltipContainer.js +1 -1
  945. package/dist/cssm/components/Tooltip/TooltipContainer.js.map +1 -1
  946. package/dist/cssm/components/Touch/Touch.js +4 -4
  947. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  948. package/dist/cssm/components/Touch/TouchContext.js.map +1 -1
  949. package/dist/cssm/components/Typography/Caption/Caption.js +1 -1
  950. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  951. package/dist/cssm/components/Typography/Footnote/Footnote.js +1 -1
  952. package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
  953. package/dist/cssm/components/Typography/Headline/Headline.js +2 -2
  954. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  955. package/dist/cssm/components/Typography/Paragraph/Paragraph.js +1 -1
  956. package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
  957. package/dist/cssm/components/Typography/Subhead/Subhead.js +2 -2
  958. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  959. package/dist/cssm/components/Typography/Text/Text.js +2 -2
  960. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  961. package/dist/cssm/components/Typography/Title/Title.js +1 -1
  962. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  963. package/dist/cssm/components/Typography/Typography.js +1 -1
  964. package/dist/cssm/components/Typography/Typography.js.map +1 -1
  965. package/dist/cssm/components/UsersStack/UsersStack.js +2 -2
  966. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  967. package/dist/cssm/components/View/View.d.ts +1 -0
  968. package/dist/cssm/components/View/View.js +3 -3
  969. package/dist/cssm/components/View/View.js.map +1 -1
  970. package/dist/cssm/components/View/ViewInfinite.js +2 -2
  971. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  972. package/dist/cssm/components/View/utils.js.map +1 -1
  973. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +1 -1
  974. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  975. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +1 -1
  976. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  977. package/dist/cssm/components/WriteBar/WriteBar.js +1 -1
  978. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  979. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +1 -1
  980. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  981. package/dist/cssm/helpers/appearance.js +1 -1
  982. package/dist/cssm/helpers/appearance.js.map +1 -1
  983. package/dist/cssm/helpers/generateVKUITokensClassName.js.map +1 -1
  984. package/dist/cssm/helpers/math.js.map +1 -1
  985. package/dist/cssm/helpers/range.js.map +1 -1
  986. package/dist/cssm/hoc/withContext.js.map +1 -1
  987. package/dist/cssm/hoc/withPlatform.js +1 -1
  988. package/dist/cssm/hoc/withPlatform.js.map +1 -1
  989. package/dist/cssm/hooks/useAdaptivity.js.map +1 -1
  990. package/dist/cssm/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
  991. package/dist/cssm/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
  992. package/dist/cssm/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js +1 -1
  993. package/dist/cssm/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
  994. package/dist/cssm/hooks/useAdaptivityHasHover.js +1 -1
  995. package/dist/cssm/hooks/useAdaptivityHasHover.js.map +1 -1
  996. package/dist/cssm/hooks/useAdaptivityHasPointer.js +1 -1
  997. package/dist/cssm/hooks/useAdaptivityHasPointer.js.map +1 -1
  998. package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js +1 -1
  999. package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  1000. package/dist/cssm/hooks/useAppearance.js +1 -1
  1001. package/dist/cssm/hooks/useAppearance.js.map +1 -1
  1002. package/dist/cssm/hooks/useAutoDetectAppearance.js +2 -2
  1003. package/dist/cssm/hooks/useAutoDetectAppearance.js.map +1 -1
  1004. package/dist/cssm/hooks/useBooleanState.js.map +1 -1
  1005. package/dist/cssm/hooks/useBridgeAdaptivity.js +2 -2
  1006. package/dist/cssm/hooks/useBridgeAdaptivity.js.map +1 -1
  1007. package/dist/cssm/hooks/useCalendar.js +1 -1
  1008. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  1009. package/dist/cssm/hooks/useChipsInput.js +1 -1
  1010. package/dist/cssm/hooks/useChipsInput.js.map +1 -1
  1011. package/dist/cssm/hooks/useChipsSelect.js +2 -2
  1012. package/dist/cssm/hooks/useChipsSelect.js.map +1 -1
  1013. package/dist/cssm/hooks/useDateInput.js +4 -4
  1014. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  1015. package/dist/cssm/hooks/useEffectDev.js.map +1 -1
  1016. package/dist/cssm/hooks/useEnsuredControl.js +2 -2
  1017. package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
  1018. package/dist/cssm/hooks/useEventListener.js.map +1 -1
  1019. package/dist/cssm/hooks/useExternRef.js.map +1 -1
  1020. package/dist/cssm/hooks/useFocusVisible.js +1 -1
  1021. package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
  1022. package/dist/cssm/hooks/useFocusWithin.js +1 -1
  1023. package/dist/cssm/hooks/useFocusWithin.js.map +1 -1
  1024. package/dist/cssm/hooks/useGlobalEventListener.js.map +1 -1
  1025. package/dist/cssm/hooks/useId.js.map +1 -1
  1026. package/dist/cssm/hooks/useInsets.js +2 -2
  1027. package/dist/cssm/hooks/useInsets.js.map +1 -1
  1028. package/dist/cssm/hooks/useIsClient.js.map +1 -1
  1029. package/dist/cssm/hooks/useKeyboard.js +2 -2
  1030. package/dist/cssm/hooks/useKeyboard.js.map +1 -1
  1031. package/dist/cssm/hooks/useKeyboardInputTracker.js +1 -1
  1032. package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
  1033. package/dist/cssm/hooks/useMediaQueries.js +1 -1
  1034. package/dist/cssm/hooks/useMediaQueries.js.map +1 -1
  1035. package/dist/cssm/hooks/useObjectMemo.js.map +1 -1
  1036. package/dist/cssm/hooks/useOrientationChange.js +1 -1
  1037. package/dist/cssm/hooks/useOrientationChange.js.map +1 -1
  1038. package/dist/cssm/hooks/usePagination.js +1 -1
  1039. package/dist/cssm/hooks/usePagination.js.map +1 -1
  1040. package/dist/cssm/hooks/usePatchChildrenRef.js.map +1 -1
  1041. package/dist/cssm/hooks/usePlatform.js +1 -1
  1042. package/dist/cssm/hooks/usePlatform.js.map +1 -1
  1043. package/dist/cssm/hooks/usePrevious.js.map +1 -1
  1044. package/dist/cssm/hooks/useTimeout.js +1 -1
  1045. package/dist/cssm/hooks/useTimeout.js.map +1 -1
  1046. package/dist/cssm/hooks/useTodayDate.js +1 -1
  1047. package/dist/cssm/hooks/useTodayDate.js.map +1 -1
  1048. package/dist/cssm/hooks/useWaitTransitionFinish.js +1 -1
  1049. package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
  1050. package/dist/cssm/index.d.ts +3 -1
  1051. package/dist/cssm/index.js +1 -0
  1052. package/dist/cssm/index.js.map +1 -1
  1053. package/dist/cssm/lib/SSR.js +1 -1
  1054. package/dist/cssm/lib/SSR.js.map +1 -1
  1055. package/dist/cssm/lib/accessibility.js +2 -2
  1056. package/dist/cssm/lib/accessibility.js.map +1 -1
  1057. package/dist/cssm/lib/adaptivity/constants.js.map +1 -1
  1058. package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
  1059. package/dist/cssm/lib/animate.js +1 -1
  1060. package/dist/cssm/lib/animate.js.map +1 -1
  1061. package/dist/cssm/lib/browser.js +1 -1
  1062. package/dist/cssm/lib/browser.js.map +1 -1
  1063. package/dist/cssm/lib/calendar.js.map +1 -1
  1064. package/dist/cssm/lib/callMultiple.js.map +1 -1
  1065. package/dist/cssm/lib/date.js.map +1 -1
  1066. package/dist/cssm/lib/dom.js.map +1 -1
  1067. package/dist/cssm/lib/floating/adapters.js +1 -1
  1068. package/dist/cssm/lib/floating/adapters.js.map +1 -1
  1069. package/dist/cssm/lib/floating/functions.js.map +1 -1
  1070. package/dist/cssm/lib/fx.js.map +1 -1
  1071. package/dist/cssm/lib/getNavId.js.map +1 -1
  1072. package/dist/cssm/lib/isRefObject.js.map +1 -1
  1073. package/dist/cssm/lib/matchMedia.js.map +1 -1
  1074. package/dist/cssm/lib/platform.js.map +1 -1
  1075. package/dist/cssm/lib/removeObjectKeys.js.map +1 -1
  1076. package/dist/cssm/lib/select.js.map +1 -1
  1077. package/dist/cssm/lib/styles.js.map +1 -1
  1078. package/dist/cssm/lib/supportEvents.js.map +1 -1
  1079. package/dist/cssm/lib/taptic.js.map +1 -1
  1080. package/dist/cssm/lib/testing.js.map +1 -1
  1081. package/dist/cssm/lib/tokensClassProvider.js +1 -1
  1082. package/dist/cssm/lib/tokensClassProvider.js.map +1 -1
  1083. package/dist/cssm/lib/touch.js.map +1 -1
  1084. package/dist/cssm/lib/useIsomorphicLayoutEffect.js.map +1 -1
  1085. package/dist/cssm/lib/utils.js.map +1 -1
  1086. package/dist/cssm/lib/warnOnce.js.map +1 -1
  1087. package/dist/cssm/shared/breakpoints.js.map +1 -1
  1088. package/dist/cssm/styles/constants.css +3 -0
  1089. package/dist/cssm/styles/customMedias.generated.css +23 -0
  1090. package/dist/cssm/styles/themes.css +3 -3
  1091. package/dist/helpers/appearance.js.map +1 -1
  1092. package/dist/helpers/generateVKUITokensClassName.js.map +1 -1
  1093. package/dist/helpers/math.js.map +1 -1
  1094. package/dist/helpers/range.js.map +1 -1
  1095. package/dist/hoc/withContext.js.map +1 -1
  1096. package/dist/hooks/useAdaptivity.js.map +1 -1
  1097. package/dist/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
  1098. package/dist/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
  1099. package/dist/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
  1100. package/dist/hooks/useAdaptivityHasHover.js.map +1 -1
  1101. package/dist/hooks/useAdaptivityHasPointer.js.map +1 -1
  1102. package/dist/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  1103. package/dist/hooks/useAutoDetectAppearance.js +2 -1
  1104. package/dist/hooks/useAutoDetectAppearance.js.map +1 -1
  1105. package/dist/hooks/useBooleanState.js.map +1 -1
  1106. package/dist/hooks/useBridgeAdaptivity.js.map +1 -1
  1107. package/dist/hooks/useCalendar.js +6 -3
  1108. package/dist/hooks/useCalendar.js.map +1 -1
  1109. package/dist/hooks/useChipsInput.js +2 -1
  1110. package/dist/hooks/useChipsInput.js.map +1 -1
  1111. package/dist/hooks/useChipsSelect.js.map +1 -1
  1112. package/dist/hooks/useDateInput.js +5 -3
  1113. package/dist/hooks/useDateInput.js.map +1 -1
  1114. package/dist/hooks/useEffectDev.js.map +1 -1
  1115. package/dist/hooks/useEnsuredControl.js.map +1 -1
  1116. package/dist/hooks/useEventListener.js.map +1 -1
  1117. package/dist/hooks/useExternRef.js.map +1 -1
  1118. package/dist/hooks/useFocusVisible.js.map +1 -1
  1119. package/dist/hooks/useFocusWithin.js.map +1 -1
  1120. package/dist/hooks/useGlobalEventListener.js.map +1 -1
  1121. package/dist/hooks/useId.js.map +1 -1
  1122. package/dist/hooks/useInsets.js.map +1 -1
  1123. package/dist/hooks/useIsClient.js.map +1 -1
  1124. package/dist/hooks/useKeyboard.js +4 -4
  1125. package/dist/hooks/useKeyboard.js.map +1 -1
  1126. package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
  1127. package/dist/hooks/useMediaQueries.js.map +1 -1
  1128. package/dist/hooks/useObjectMemo.js.map +1 -1
  1129. package/dist/hooks/useOrientationChange.js +1 -1
  1130. package/dist/hooks/useOrientationChange.js.map +1 -1
  1131. package/dist/hooks/usePagination.js.map +1 -1
  1132. package/dist/hooks/usePatchChildrenRef.js +2 -1
  1133. package/dist/hooks/usePatchChildrenRef.js.map +1 -1
  1134. package/dist/hooks/usePrevious.js.map +1 -1
  1135. package/dist/hooks/useTimeout.js +2 -1
  1136. package/dist/hooks/useTimeout.js.map +1 -1
  1137. package/dist/hooks/useTodayDate.js.map +1 -1
  1138. package/dist/hooks/useWaitTransitionFinish.js +4 -2
  1139. package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
  1140. package/dist/index.d.ts +3 -1
  1141. package/dist/index.js +1 -0
  1142. package/dist/index.js.map +1 -1
  1143. package/dist/lib/SSR.js.map +1 -1
  1144. package/dist/lib/accessibility.js.map +1 -1
  1145. package/dist/lib/adaptivity/constants.js.map +1 -1
  1146. package/dist/lib/adaptivity/functions.js.map +1 -1
  1147. package/dist/lib/animate.js.map +1 -1
  1148. package/dist/lib/browser.js.map +1 -1
  1149. package/dist/lib/calendar.js.map +1 -1
  1150. package/dist/lib/callMultiple.js.map +1 -1
  1151. package/dist/lib/date.js.map +1 -1
  1152. package/dist/lib/dom.js.map +1 -1
  1153. package/dist/lib/floating/adapters.js.map +1 -1
  1154. package/dist/lib/floating/functions.js.map +1 -1
  1155. package/dist/lib/fx.js.map +1 -1
  1156. package/dist/lib/getNavId.js.map +1 -1
  1157. package/dist/lib/isRefObject.js.map +1 -1
  1158. package/dist/lib/matchMedia.js.map +1 -1
  1159. package/dist/lib/offset.js +6 -5
  1160. package/dist/lib/offset.js.map +1 -1
  1161. package/dist/lib/platform.js.map +1 -1
  1162. package/dist/lib/polyfills.js.map +1 -1
  1163. package/dist/lib/removeObjectKeys.js.map +1 -1
  1164. package/dist/lib/select.js +2 -2
  1165. package/dist/lib/select.js.map +1 -1
  1166. package/dist/lib/styles.js.map +1 -1
  1167. package/dist/lib/supportEvents.js.map +1 -1
  1168. package/dist/lib/taptic.js.map +1 -1
  1169. package/dist/lib/testing.js.map +1 -1
  1170. package/dist/lib/tokensClassProvider.js.map +1 -1
  1171. package/dist/lib/touch.js.map +1 -1
  1172. package/dist/lib/useIsomorphicLayoutEffect.js.map +1 -1
  1173. package/dist/lib/utils.js.map +1 -1
  1174. package/dist/lib/warnOnce.js.map +1 -1
  1175. package/dist/shared/breakpoints.js.map +1 -1
  1176. package/dist/vkui.css +11 -10
  1177. package/dist/vkui.css.map +1 -1
  1178. package/dist/vkui.js.tmp +3108 -2238
  1179. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24ChevronCompactLeft, Icon24ChevronCompactRight } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { PaginationPageType, usePagination } from '../../hooks/usePagination';\nimport { SizeType } from '../../lib/adaptivity';\nimport type { HasRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './Pagination.module.css';\n\nfunction getPageAriaLabelDefault(page: number, isCurrent: boolean): string {\n return isCurrent ? `${page} страница` : `Перейти на ${page} страницу`;\n}\n\nexport interface PaginationProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange'>,\n HasRootRef<HTMLElement> {\n /**\n * Текущая страница.\n */\n currentPage?: number;\n /**\n * Кол-во всегда видимых страниц по краям текущей страницы.\n */\n siblingCount?: number;\n /**\n * Кол-во всегда видимых страниц в начале и в конце.\n */\n boundaryCount?: number;\n /**\n * Общее кол-во страниц.\n */\n totalPages?: number;\n /**\n * Блокировка всех кнопок.\n */\n disabled?: boolean;\n /**\n * Переопределение `aria-label` для кнопки навигации назад.\n * По умолчанию используется текст на \"ru_RU\".\n */\n prevButtonAriaLabel?: string;\n /**\n * Переопределение `aria-label` для кнопки навигации вперёд.\n * По умолчанию используется текст на \"ru_RU\".\n */\n nextButtonAriaLabel?: string;\n /**\n * Функция для переопределения и/или локализации `aria-label` атрибута.\n * По умолчанию используется текст на \"ru_RU\".\n */\n getPageAriaLabel?(page: number, isCurrent: boolean): string;\n onChange?(page: number): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Pagination\n */\nexport const Pagination = ({\n currentPage = 1,\n siblingCount = 1,\n boundaryCount = 1,\n totalPages = 1,\n disabled,\n getPageAriaLabel = getPageAriaLabelDefault,\n prevButtonAriaLabel = 'Перейти на предыдущую страницу',\n nextButtonAriaLabel = 'Перейти на следующую страницу',\n getRootRef,\n onChange,\n ...resetProps\n}: PaginationProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n const pages = usePagination({\n currentPage,\n totalPages,\n siblingCount,\n boundaryCount,\n });\n const isFirstPage = currentPage === 1;\n const isLastPage = currentPage === totalPages;\n\n const handlePrevClick = React.useCallback(() => {\n if (onChange && !isFirstPage) {\n onChange(currentPage - 1);\n }\n }, [currentPage, isFirstPage, onChange]);\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const page: string = event.currentTarget.dataset.page || '1';\n onChange?.(Number(page));\n },\n [onChange],\n );\n\n const handleNextClick = React.useCallback(() => {\n if (onChange && !isLastPage) {\n onChange(currentPage + 1);\n }\n }, [currentPage, isLastPage, onChange]);\n\n const renderPages = React.useCallback(\n (page: PaginationPageType) => {\n switch (page) {\n case 'start-ellipsis':\n case 'end-ellipsis':\n return (\n <li key={page}>\n <Text\n className={classNames(\n styles['Pagination__page'],\n styles['Pagination__page--type-ellipsis'],\n sizeY === 'none' && styles['Pagination__page--sizeY-none'],\n sizeY === SizeType.COMPACT && styles['Pagination__page--sizeY-compact'],\n disabled && styles['Pagination__page--disabled'],\n )}\n >\n &#8230;\n </Text>\n </li>\n );\n default: {\n const isCurrent = page === currentPage;\n return (\n <li key={page}>\n <Tappable\n className={classNames(\n styles['Pagination__page'],\n sizeY === 'none' && styles['Pagination__page--sizeY-none'],\n sizeY === SizeType.COMPACT && styles['Pagination__page--sizeY-compact'],\n isCurrent && styles['Pagination__page--current'],\n disabled && styles['Pagination__page--disabled'],\n )}\n activeMode={styles['Pagination__page--state-active']}\n hoverMode={styles['Pagination__page--state-hover']}\n hasActive={!isCurrent}\n hasHover={!isCurrent}\n focusVisibleMode=\"outside\"\n disabled={disabled}\n data-page={page}\n aria-current={isCurrent ? true : undefined}\n aria-label={getPageAriaLabel(page, isCurrent)}\n onClick={handleClick}\n >\n <Text normalize={false}>{page}</Text>\n </Tappable>\n </li>\n );\n }\n }\n },\n [sizeY, currentPage, disabled, getPageAriaLabel, handleClick],\n );\n\n return (\n <nav role=\"navigation\" aria-label=\"Навигация по страницам\" ref={getRootRef} {...resetProps}>\n <ul className={styles['Pagination__list']}>\n <li className={styles['Pagination__prevButtonContainer']}>\n <Button\n size=\"l\"\n before={<Icon24ChevronCompactLeft width={24} />}\n appearance=\"accent\"\n mode=\"tertiary\"\n disabled={isFirstPage || disabled}\n aria-label={prevButtonAriaLabel}\n onClick={handlePrevClick}\n />\n </li>\n {pages.map(renderPages)}\n <li className={styles['Pagination__nextButtonContainer']}>\n <Button\n size=\"l\"\n after={<Icon24ChevronCompactRight width={24} />}\n appearance=\"accent\"\n mode=\"tertiary\"\n disabled={isLastPage || disabled}\n aria-label={nextButtonAriaLabel}\n onClick={handleNextClick}\n />\n </li>\n </ul>\n </nav>\n );\n};\n"],"names":["React","Icon24ChevronCompactLeft","Icon24ChevronCompactRight","classNames","useAdaptivity","usePagination","SizeType","Button","Tappable","Text","getPageAriaLabelDefault","page","isCurrent","Pagination","currentPage","siblingCount","boundaryCount","totalPages","disabled","getPageAriaLabel","prevButtonAriaLabel","nextButtonAriaLabel","getRootRef","onChange","resetProps","sizeY","pages","isFirstPage","isLastPage","handlePrevClick","useCallback","handleClick","event","currentTarget","dataset","Number","handleNextClick","renderPages","li","key","className","COMPACT","activeMode","hoverMode","hasActive","hasHover","focusVisibleMode","data-page","aria-current","undefined","aria-label","onClick","normalize","nav","role","ref","ul","size","before","width","appearance","mode","map","after"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,wBAAwB,EAAEC,yBAAyB,QAAQ,mBAAmB;AACvF,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAA6BC,aAAa,QAAQ,4BAA4B;AAC9E,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,IAAI,QAAQ,0BAA0B;AAG/C,SAASC,wBAAwBC,IAAY,EAAEC,SAAkB;IAC/D,OAAOA,YAAY,AAAC,GAAO,OAALD,MAAK,eAAa,AAAC,cAAkB,OAALA,MAAK;AAC7D;AA2CA;;CAEC,GACD,OAAO,IAAME,aAAa;oCACxBC,aAAAA,8CAAc,qDACdC,cAAAA,gDAAe,uDACfC,eAAAA,kDAAgB,qDAChBC,YAAAA,4CAAa,uBACbC,kBAAAA,2CACAC,kBAAAA,wDAAmBT,uFACnBU,qBAAAA,8DAAsB,mGACtBC,qBAAAA,8DAAsB,8DACtBC,oBAAAA,YACAC,kBAAAA,UACGC;QAVHV;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAA2BnB,iBAAAA,wCAAAA,eAAnBqB,OAAAA,0CAAQ;IAEhB,IAAMC,QAAQrB,cAAc;QAC1BS,aAAAA;QACAG,YAAAA;QACAF,cAAAA;QACAC,eAAAA;IACF;IACA,IAAMW,cAAcb,gBAAgB;IACpC,IAAMc,aAAad,gBAAgBG;IAEnC,IAAMY,kBAAkB7B,MAAM8B,YAAY;QACxC,IAAIP,YAAY,CAACI,aAAa;YAC5BJ,SAAST,cAAc;QACzB;IACF,GAAG;QAACA;QAAaa;QAAaJ;KAAS;IAEvC,IAAMQ,cAAc/B,MAAM8B,YACxB,SAACE;QACC,IAAMrB,OAAeqB,MAAMC,cAAcC,QAAQvB,QAAQ;QACzDY,qBAAAA,sBAAAA,KAAAA,IAAAA,SAAWY,OAAOxB;IACpB,GACA;QAACY;KAAS;IAGZ,IAAMa,kBAAkBpC,MAAM8B,YAAY;QACxC,IAAIP,YAAY,CAACK,YAAY;YAC3BL,SAAST,cAAc;QACzB;IACF,GAAG;QAACA;QAAac;QAAYL;KAAS;IAEtC,IAAMc,cAAcrC,MAAM8B,YACxB,SAACnB;QACC,OAAQA;YACN,KAAK;YACL,KAAK;gBACH,qBACE,oBAAC2B;oBAAGC,KAAK5B;iCACP,oBAACF;oBACC+B,WAAWrC,0EAGTsB,UAAU,8CACVA,UAAUnB,SAASmC,kDACnBvB;mBAEH;YAKP;gBAAS;oBACP,IAAMN,YAAYD,SAASG;oBAC3B,qBACE,oBAACwB;wBAAGC,KAAK5B;qCACP,oBAACH;wBACCgC,WAAWrC,mCAETsB,UAAU,8CACVA,UAAUnB,SAASmC,kDACnB7B,8CACAM;wBAEFwB,UAAU;wBACVC,SAAS;wBACTC,WAAW,CAAChC;wBACZiC,UAAU,CAACjC;wBACXkC,kBAAiB;wBACjB5B,UAAUA;wBACV6B,aAAWpC;wBACXqC,gBAAcpC,YAAY,OAAOqC;wBACjCC,cAAY/B,iBAAiBR,MAAMC;wBACnCuC,SAASpB;qCAET,oBAACtB;wBAAK2C,WAAW;uBAAQzC;gBAIjC;QACF;IACF,GACA;QAACc;QAAOX;QAAaI;QAAUC;QAAkBY;KAAY;IAG/D,qBACE,oBAACsB;QAAIC,MAAK;QAAaJ,cAAW;QAAyBK,KAAKjC;OAAgBE,2BAC9E,oBAACgC;QAAGhB,SAAS;qBACX,oBAACF;QAAGE,SAAS;qBACX,oBAACjC;QACCkD,MAAK;QACLC,sBAAQ,oBAACzD;YAAyB0D,OAAO;;QACzCC,YAAW;QACXC,MAAK;QACL3C,UAAUS,eAAeT;QACzBgC,cAAY9B;QACZ+B,SAAStB;SAGZH,MAAMoC,IAAIzB,4BACX,oBAACC;QAAGE,SAAS;qBACX,oBAACjC;QACCkD,MAAK;QACLM,qBAAO,oBAAC7D;YAA0ByD,OAAO;;QACzCC,YAAW;QACXC,MAAK;QACL3C,UAAUU,cAAcV;QACxBgC,cAAY7B;QACZ8B,SAASf;;AAMrB,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24ChevronCompactLeft, Icon24ChevronCompactRight } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { PaginationPageType, usePagination } from '../../hooks/usePagination';\nimport { SizeType } from '../../lib/adaptivity';\nimport type { HasRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './Pagination.module.css';\n\nfunction getPageAriaLabelDefault(page: number, isCurrent: boolean): string {\n return isCurrent ? `${page} страница` : `Перейти на ${page} страницу`;\n}\n\nexport interface PaginationProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange'>,\n HasRootRef<HTMLElement> {\n /**\n * Текущая страница.\n */\n currentPage?: number;\n /**\n * Кол-во всегда видимых страниц по краям текущей страницы.\n */\n siblingCount?: number;\n /**\n * Кол-во всегда видимых страниц в начале и в конце.\n */\n boundaryCount?: number;\n /**\n * Общее кол-во страниц.\n */\n totalPages?: number;\n /**\n * Блокировка всех кнопок.\n */\n disabled?: boolean;\n /**\n * Переопределение `aria-label` для кнопки навигации назад.\n * По умолчанию используется текст на \"ru_RU\".\n */\n prevButtonAriaLabel?: string;\n /**\n * Переопределение `aria-label` для кнопки навигации вперёд.\n * По умолчанию используется текст на \"ru_RU\".\n */\n nextButtonAriaLabel?: string;\n /**\n * Функция для переопределения и/или локализации `aria-label` атрибута.\n * По умолчанию используется текст на \"ru_RU\".\n */\n getPageAriaLabel?(page: number, isCurrent: boolean): string;\n onChange?(page: number): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Pagination\n */\nexport const Pagination = ({\n currentPage = 1,\n siblingCount = 1,\n boundaryCount = 1,\n totalPages = 1,\n disabled,\n getPageAriaLabel = getPageAriaLabelDefault,\n prevButtonAriaLabel = 'Перейти на предыдущую страницу',\n nextButtonAriaLabel = 'Перейти на следующую страницу',\n getRootRef,\n onChange,\n ...resetProps\n}: PaginationProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n const pages = usePagination({\n currentPage,\n totalPages,\n siblingCount,\n boundaryCount,\n });\n const isFirstPage = currentPage === 1;\n const isLastPage = currentPage === totalPages;\n\n const handlePrevClick = React.useCallback(() => {\n if (onChange && !isFirstPage) {\n onChange(currentPage - 1);\n }\n }, [currentPage, isFirstPage, onChange]);\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const page: string = event.currentTarget.dataset.page || '1';\n onChange?.(Number(page));\n },\n [onChange],\n );\n\n const handleNextClick = React.useCallback(() => {\n if (onChange && !isLastPage) {\n onChange(currentPage + 1);\n }\n }, [currentPage, isLastPage, onChange]);\n\n const renderPages = React.useCallback(\n (page: PaginationPageType) => {\n switch (page) {\n case 'start-ellipsis':\n case 'end-ellipsis':\n return (\n <li key={page}>\n <Text\n className={classNames(\n styles['Pagination__page'],\n styles['Pagination__page--type-ellipsis'],\n sizeY === 'none' && styles['Pagination__page--sizeY-none'],\n sizeY === SizeType.COMPACT && styles['Pagination__page--sizeY-compact'],\n disabled && styles['Pagination__page--disabled'],\n )}\n >\n &#8230;\n </Text>\n </li>\n );\n default: {\n const isCurrent = page === currentPage;\n return (\n <li key={page}>\n <Tappable\n className={classNames(\n styles['Pagination__page'],\n sizeY === 'none' && styles['Pagination__page--sizeY-none'],\n sizeY === SizeType.COMPACT && styles['Pagination__page--sizeY-compact'],\n isCurrent && styles['Pagination__page--current'],\n disabled && styles['Pagination__page--disabled'],\n )}\n activeMode={styles['Pagination__page--state-active']}\n hoverMode={styles['Pagination__page--state-hover']}\n hasActive={!isCurrent}\n hasHover={!isCurrent}\n focusVisibleMode=\"outside\"\n disabled={disabled}\n data-page={page}\n aria-current={isCurrent ? true : undefined}\n aria-label={getPageAriaLabel(page, isCurrent)}\n onClick={handleClick}\n >\n <Text normalize={false}>{page}</Text>\n </Tappable>\n </li>\n );\n }\n }\n },\n [sizeY, currentPage, disabled, getPageAriaLabel, handleClick],\n );\n\n return (\n <nav role=\"navigation\" aria-label=\"Навигация по страницам\" ref={getRootRef} {...resetProps}>\n <ul className={styles['Pagination__list']}>\n <li className={styles['Pagination__prevButtonContainer']}>\n <Button\n size=\"l\"\n before={<Icon24ChevronCompactLeft width={24} />}\n appearance=\"accent\"\n mode=\"tertiary\"\n disabled={isFirstPage || disabled}\n aria-label={prevButtonAriaLabel}\n onClick={handlePrevClick}\n />\n </li>\n {pages.map(renderPages)}\n <li className={styles['Pagination__nextButtonContainer']}>\n <Button\n size=\"l\"\n after={<Icon24ChevronCompactRight width={24} />}\n appearance=\"accent\"\n mode=\"tertiary\"\n disabled={isLastPage || disabled}\n aria-label={nextButtonAriaLabel}\n onClick={handleNextClick}\n />\n </li>\n </ul>\n </nav>\n );\n};\n"],"names":["React","Icon24ChevronCompactLeft","Icon24ChevronCompactRight","classNames","useAdaptivity","usePagination","SizeType","Button","Tappable","Text","getPageAriaLabelDefault","page","isCurrent","Pagination","currentPage","siblingCount","boundaryCount","totalPages","disabled","getPageAriaLabel","prevButtonAriaLabel","nextButtonAriaLabel","getRootRef","onChange","resetProps","sizeY","pages","isFirstPage","isLastPage","handlePrevClick","useCallback","handleClick","event","currentTarget","dataset","Number","handleNextClick","renderPages","li","key","className","COMPACT","activeMode","hoverMode","hasActive","hasHover","focusVisibleMode","data-page","aria-current","undefined","aria-label","onClick","normalize","nav","role","ref","ul","size","before","width","appearance","mode","map","after"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Panel/Panel.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { HasRootRef } from '../../types';\nimport { TooltipContainer } from '../Tooltip/TooltipContainer';\nimport { Touch } from '../Touch/Touch';\nimport styles from './Panel.module.css';\n\nconst sizeXClassNames = {\n none: styles['Panel--sizeX-none'],\n [SizeType.COMPACT]: styles['Panel--sizeX-compact'],\n [SizeType.REGULAR]: styles['Panel--sizeX-regular'],\n};\n\nexport interface PanelProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n NavIdProps {\n centered?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Panel\n */\nexport const Panel = ({\n centered = false,\n children,\n getRootRef,\n nav,\n className,\n ...restProps\n}: PanelProps) => {\n const platform = usePlatform();\n const { sizeX = 'none' } = useAdaptivity();\n\n return (\n <div\n {...restProps}\n ref={getRootRef}\n className={classNames(\n styles['Panel'],\n sizeXClassNames[sizeX],\n centered && 'vkuiInternalPanel--centered',\n className,\n )}\n >\n <Touch\n Component={TooltipContainer}\n className={classNames(styles['Panel__in'], 'vkuiInternalPanel__in')}\n >\n <div className={styles['Panel__in-before']} />\n {centered ? <div className={styles['Panel__centered']}>{children}</div> : children}\n {platform === Platform.IOS && <div className=\"vkuiInternalPanel__fade\" />}\n <div className={styles['Panel__in-after']} />\n </Touch>\n </div>\n );\n};\n"],"names":["React","classNames","useAdaptivity","usePlatform","SizeType","Platform","TooltipContainer","Touch","sizeXClassNames","none","COMPACT","REGULAR","Panel","centered","children","getRootRef","nav","className","restProps","platform","sizeX","div","ref","Component","IOS"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,KAAK,QAAQ,iBAAiB;IAGf;AAAxB,IAAMC,mBAAkB;IACtBC,IAAI;oBADkB,MAErBL,SAASM,uDAFY,MAGrBN,SAASO,sCAHY;AAaxB;;CAEC,GACD,OAAO,IAAMC,QAAQ;iCACnBC,UAAAA,wCAAW,yBACXC,kBAAAA,UACAC,oBAAAA,YACAC,aAAAA,KACAC,mBAAAA,WACGC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWhB;IACjB,IAA2BD,iBAAAA,wCAAAA,eAAnBkB,OAAAA,0CAAQ;IAEhB,qBACE,oBAACC,+CACKH;QACJI,KAAKP;QACLE,WAAWhB,wBAETO,eAAe,CAACY,MAAM,EACtBP,YAAY,+BACZI;sBAGF,oBAACV;QACCgB,WAAWjB;QACXW,WAAWhB,4BAAgC;qBAE3C,oBAACoB;QAAIJ,SAAS;QACbJ,yBAAW,oBAACQ;QAAIJ,SAAS;OAA8BH,YAAkBA,UACzEK,aAAad,SAASmB,qBAAO,oBAACH;QAAIJ,WAAU;sBAC7C,oBAACI;QAAIJ,SAAS;;AAItB,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Panel/Panel.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { HasRootRef } from '../../types';\nimport { TooltipContainer } from '../Tooltip/TooltipContainer';\nimport { Touch } from '../Touch/Touch';\nimport styles from './Panel.module.css';\n\nconst sizeXClassNames = {\n none: styles['Panel--sizeX-none'],\n [SizeType.COMPACT]: styles['Panel--sizeX-compact'],\n [SizeType.REGULAR]: styles['Panel--sizeX-regular'],\n};\n\nexport interface PanelProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n NavIdProps {\n centered?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Panel\n */\nexport const Panel = ({\n centered = false,\n children,\n getRootRef,\n nav,\n className,\n ...restProps\n}: PanelProps) => {\n const platform = usePlatform();\n const { sizeX = 'none' } = useAdaptivity();\n\n return (\n <div\n {...restProps}\n ref={getRootRef}\n className={classNames(\n styles['Panel'],\n sizeXClassNames[sizeX],\n centered && 'vkuiInternalPanel--centered',\n className,\n )}\n >\n <Touch\n Component={TooltipContainer}\n className={classNames(styles['Panel__in'], 'vkuiInternalPanel__in')}\n >\n <div className={styles['Panel__in-before']} />\n {centered ? <div className={styles['Panel__centered']}>{children}</div> : children}\n {platform === Platform.IOS && <div className=\"vkuiInternalPanel__fade\" />}\n <div className={styles['Panel__in-after']} />\n </Touch>\n </div>\n );\n};\n"],"names":["React","classNames","useAdaptivity","usePlatform","SizeType","Platform","TooltipContainer","Touch","sizeXClassNames","none","COMPACT","REGULAR","Panel","centered","children","getRootRef","nav","className","restProps","platform","sizeX","div","ref","Component","IOS"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,KAAK,QAAQ,iBAAiB;IAGf;AAAxB,IAAMC,mBAAkB;IACtBC,IAAI;oBADkB,MAErBL,SAASM,OAAO,gDAFK,MAGrBN,SAASO,OAAO,+BAHK;AAaxB;;CAEC,GACD,OAAO,IAAMC,QAAQ;iCACnBC,UAAAA,wCAAW,yBACXC,kBAAAA,UACAC,oBAAAA,YACAC,aAAAA,KACAC,mBAAAA,WACGC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWhB;IACjB,IAA2BD,iBAAAA,wCAAAA,eAAnBkB,OAAAA,0CAAQ;IAEhB,qBACE,oBAACC,+CACKH;QACJI,KAAKP;QACLE,WAAWhB,wBAETO,eAAe,CAACY,MAAM,EACtBP,YAAY,+BACZI;sBAGF,oBAACV;QACCgB,WAAWjB;QACXW,WAAWhB,4BAAgC;qBAE3C,oBAACoB;QAAIJ,SAAS;QACbJ,yBAAW,oBAACQ;QAAIJ,SAAS;OAA8BH,YAAkBA,UACzEK,aAAad,SAASmB,GAAG,kBAAI,oBAACH;QAAIJ,WAAU;sBAC7C,oBAACI;QAAIJ,SAAS;;AAItB,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeader/LegacyPanelHeaderContent.tsx"],"sourcesContent":["import * as React from 'react';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasComponent } from '../../types';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './PanelHeader.module.css';\n\nexport interface LegacyPanelHeaderContentProps\n extends React.HTMLAttributes<HTMLElement>,\n HasComponent {}\n\nconst warn = warnOnce('PanelHeader');\n\n/**\n * TODO [>=6]: Удалить подкомпонент\n * @deprecated\n */\nexport const LegacyPanelHeaderContent = ({\n children,\n Component = 'span',\n id,\n}: LegacyPanelHeaderContentProps) => {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Подкомпонент PanelHeader.Content устарел и будет удалён в v6. Используйте параметр typographyProps.',\n );\n }\n\n const platform = usePlatform();\n\n return platform === Platform.VKCOM ? (\n <Text weight=\"2\" Component={Component} id={id}>\n {children}\n </Text>\n ) : (\n <Component className={styles['PanelHeader__content-in']} id={id}>\n {children}\n </Component>\n );\n};\n\nLegacyPanelHeaderContent.displayName = 'LegacyPanelHeaderContent';\n"],"names":["React","usePlatform","Platform","warnOnce","Text","warn","LegacyPanelHeaderContent","children","Component","id","process","env","NODE_ENV","platform","VKCOM","weight","className","displayName"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,IAAI,QAAQ,0BAA0B;AAO/C,IAAMC,OAAOF,SAAS;AAEtB;;;CAGC,GACD,OAAO,IAAMG,2BAA2B;QACtCC,iBAAAA,mCACAC,WAAAA,0CAAY,2BACZC,WAAAA;IAEA,IAAIC,QAAQC,IAAIC,aAAa,eAAe;QAC1CP,KACE;IAEJ;IAEA,IAAMQ,WAAWZ;IAEjB,OAAOY,aAAaX,SAASY,sBAC3B,oBAACV;QAAKW,QAAO;QAAIP,WAAWA;QAAWC,IAAIA;OACxCF,0BAGH,oBAACC;QAAUQ,SAAS;QAAqCP,IAAIA;OAC1DF;AAGP,EAAE;AAEFD,yBAAyBW,cAAc"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeader/LegacyPanelHeaderContent.tsx"],"sourcesContent":["import * as React from 'react';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasComponent } from '../../types';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './PanelHeader.module.css';\n\nexport interface LegacyPanelHeaderContentProps\n extends React.HTMLAttributes<HTMLElement>,\n HasComponent {}\n\nconst warn = warnOnce('PanelHeader');\n\n/**\n * TODO [>=6]: Удалить подкомпонент\n * @deprecated\n */\nexport const LegacyPanelHeaderContent = ({\n children,\n Component = 'span',\n id,\n}: LegacyPanelHeaderContentProps) => {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Подкомпонент PanelHeader.Content устарел и будет удалён в v6. Используйте параметр typographyProps.',\n );\n }\n\n const platform = usePlatform();\n\n return platform === Platform.VKCOM ? (\n <Text weight=\"2\" Component={Component} id={id}>\n {children}\n </Text>\n ) : (\n <Component className={styles['PanelHeader__content-in']} id={id}>\n {children}\n </Component>\n );\n};\n\nLegacyPanelHeaderContent.displayName = 'LegacyPanelHeaderContent';\n"],"names":["React","usePlatform","Platform","warnOnce","Text","warn","LegacyPanelHeaderContent","children","Component","id","process","env","NODE_ENV","platform","VKCOM","weight","className","displayName"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,IAAI,QAAQ,0BAA0B;AAO/C,IAAMC,OAAOF,SAAS;AAEtB;;;CAGC,GACD,OAAO,IAAMG,2BAA2B;QACtCC,iBAAAA,mCACAC,WAAAA,0CAAY,2BACZC,WAAAA;IAEA,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1CP,KACE;IAEJ;IAEA,IAAMQ,WAAWZ;IAEjB,OAAOY,aAAaX,SAASY,KAAK,iBAChC,oBAACV;QAAKW,QAAO;QAAIP,WAAWA;QAAWC,IAAIA;OACxCF,0BAGH,oBAACC;QAAUQ,SAAS;QAAqCP,IAAIA;OAC1DF;AAGP,EAAE;AAEFD,yBAAyBW,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeader/PanelHeader.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { HasComponent, HasRef, HasRootRef } from '../../types';\nimport { useConfigProvider, WebviewType } from '../ConfigProvider/ConfigProviderContext';\nimport { FixedLayout } from '../FixedLayout/FixedLayout';\nimport { ModalRootContext } from '../ModalRoot/ModalRootContext';\nimport { Separator } from '../Separator/Separator';\nimport { Spacing } from '../Spacing/Spacing';\nimport { TooltipContainer } from '../Tooltip/TooltipContainer';\nimport { Text } from '../Typography/Text/Text';\nimport { LegacyPanelHeaderContent } from './LegacyPanelHeaderContent';\nimport styles from './PanelHeader.module.css';\n\nconst platformClassNames = {\n ios: classNames(styles['PanelHeader--ios'], 'vkuiInternalPanelHeader--ios'),\n android: classNames(styles['PanelHeader--android'], 'vkuiInternalPanelHeader--android'),\n vkcom: classNames(styles['PanelHeader--vkcom'], 'vkuiInternalPanelHeader--vkcom'),\n};\n\nconst sizeXClassNames = {\n none: styles['PanelHeader--sizeX-none'],\n regular: styles['PanelHeader--sizeX-regular'],\n};\n\nexport interface PanelHeaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n before?: React.ReactNode;\n /**\n * Добавляет элемент справа.\n *\n * При передаче нескольких элементов, расставляет отступы между ними.\n */\n after?: React.ReactNode;\n separator?: boolean;\n transparent?: boolean;\n shadow?: boolean;\n /**\n * Если `false`, то шапка будет нулевой высоты и контент панели \"залезет\" под неё\n */\n visor?: boolean;\n /**\n * Если `false`, то шапка будет в потоке. По умолчанию `true`, но если платформа vkcom, то по умолчанию `false`.\n */\n fixed?: boolean;\n /**\n * По умолчанию как `Component` используется `span`.\n */\n typographyProps?: HasComponent & React.HTMLAttributes<HTMLElement>;\n}\n\nconst PanelHeaderIn = ({\n before,\n after,\n separator,\n children,\n typographyProps = {},\n}: PanelHeaderProps) => {\n const { Component = 'span', ...restProps } = typographyProps;\n const { webviewType } = useConfigProvider();\n const { isInsideModal } = React.useContext(ModalRootContext);\n const platform = usePlatform();\n\n let typographyNode: React.ReactNode;\n\n // TODO [>=6]: Удалить условие\n if (\n React.isValidElement(children) &&\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n (children as JSX.Element).type.displayName === LegacyPanelHeaderContent.displayName\n ) {\n typographyNode = children;\n } else {\n typographyNode =\n platform === Platform.VKCOM ? (\n <Text weight=\"2\" Component={Component} {...restProps}>\n {children}\n </Text>\n ) : (\n <Component className={styles['PanelHeader__content-in']} {...restProps}>\n {children}\n </Component>\n );\n }\n\n return (\n <React.Fragment>\n <TooltipContainer fixed className={styles['PanelHeader__in']}>\n <div\n className={classNames(styles['PanelHeader__before'], 'vkuiInternalPanelHeader__before')}\n >\n {before}\n </div>\n <div className={styles['PanelHeader__content']}>{typographyNode}</div>\n <div className={classNames(styles['PanelHeader__after'], 'vkuiInternalPanelHeader__after')}>\n {(webviewType === WebviewType.INTERNAL || isInsideModal) && after}\n </div>\n </TooltipContainer>\n {separator && platform === Platform.VKCOM && (\n <Separator className={styles['PanelHeader__separator']} wide />\n )}\n </React.Fragment>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeader\n */\nexport const PanelHeader = ({\n before,\n children,\n after,\n separator = true,\n visor = true,\n transparent = false,\n shadow,\n getRef,\n getRootRef,\n fixed,\n className,\n typographyProps,\n ...restProps\n}: PanelHeaderProps) => {\n const platform = usePlatform();\n const { webviewType } = useConfigProvider();\n const { isInsideModal } = React.useContext(ModalRootContext);\n const { sizeX = 'none' } = useAdaptivity();\n const { sizeX: adaptiveSizeX } = useAdaptivityConditionalRender();\n let isFixed = fixed !== undefined ? fixed : platform !== Platform.VKCOM;\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['PanelHeader'],\n 'vkuiInternalPanelHeader',\n platformClassNames.hasOwnProperty(platform)\n ? platformClassNames[platform]\n : platformClassNames.android,\n transparent && styles['PanelHeader--trnsp'],\n shadow && styles['PanelHeader--shadow'],\n visor && classNames(styles['PanelHeader--vis'], 'vkuiInternalPanelHeader--vis'),\n separator &&\n visor &&\n classNames(styles['PanelHeader--sep'], 'vkuiInternalPanelHeader--sep'),\n webviewType === WebviewType.VKAPPS && !isInsideModal && styles['PanelHeader--vkapps'],\n !before &&\n classNames(styles['PanelHeader--no-before'], 'vkuiInternalPanelHeader--no-before'),\n !after && styles['PanelHeader--no-after'],\n isFixed && styles['PanelHeader--fixed'],\n sizeX !== SizeType.COMPACT && sizeXClassNames[sizeX],\n className,\n )}\n ref={isFixed ? getRootRef : getRef}\n >\n {isFixed ? (\n <FixedLayout\n className={classNames(styles['PanelHeader__fixed'], 'vkuiInternalPanelHeader__fixed')}\n vertical=\"top\"\n getRootRef={getRef}\n >\n <PanelHeaderIn\n before={before}\n after={after}\n separator={separator}\n typographyProps={typographyProps}\n >\n {children}\n </PanelHeaderIn>\n </FixedLayout>\n ) : (\n <PanelHeaderIn\n before={before}\n after={after}\n separator={separator}\n typographyProps={typographyProps}\n >\n {children}\n </PanelHeaderIn>\n )}\n {separator && visor && platform !== Platform.VKCOM && (\n <React.Fragment>\n {adaptiveSizeX.compact && <Separator className={adaptiveSizeX.compact.className} />}\n {adaptiveSizeX.regular && (\n <Spacing className={adaptiveSizeX.regular.className} size={16} />\n )}\n </React.Fragment>\n )}\n </div>\n );\n};\n\nPanelHeader.Content = LegacyPanelHeaderContent;\n"],"names":["React","classNames","useAdaptivity","useAdaptivityConditionalRender","usePlatform","SizeType","Platform","useConfigProvider","WebviewType","FixedLayout","ModalRootContext","Separator","Spacing","TooltipContainer","Text","LegacyPanelHeaderContent","platformClassNames","ios","android","vkcom","sizeXClassNames","none","regular","PanelHeaderIn","before","after","separator","children","typographyProps","Component","restProps","webviewType","isInsideModal","useContext","platform","typographyNode","isValidElement","type","displayName","VKCOM","weight","className","Fragment","fixed","div","INTERNAL","wide","PanelHeader","visor","transparent","shadow","getRef","getRootRef","sizeX","adaptiveSizeX","isFixed","undefined","hasOwnProperty","VKAPPS","COMPACT","ref","vertical","compact","size","Content"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeader/PanelHeader.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { HasComponent, HasRef, HasRootRef } from '../../types';\nimport { useConfigProvider, WebviewType } from '../ConfigProvider/ConfigProviderContext';\nimport { FixedLayout } from '../FixedLayout/FixedLayout';\nimport { ModalRootContext } from '../ModalRoot/ModalRootContext';\nimport { Separator } from '../Separator/Separator';\nimport { Spacing } from '../Spacing/Spacing';\nimport { TooltipContainer } from '../Tooltip/TooltipContainer';\nimport { Text } from '../Typography/Text/Text';\nimport { LegacyPanelHeaderContent } from './LegacyPanelHeaderContent';\nimport styles from './PanelHeader.module.css';\n\nconst platformClassNames = {\n ios: classNames(styles['PanelHeader--ios'], 'vkuiInternalPanelHeader--ios'),\n android: classNames(styles['PanelHeader--android'], 'vkuiInternalPanelHeader--android'),\n vkcom: classNames(styles['PanelHeader--vkcom'], 'vkuiInternalPanelHeader--vkcom'),\n};\n\nconst sizeXClassNames = {\n none: styles['PanelHeader--sizeX-none'],\n regular: styles['PanelHeader--sizeX-regular'],\n};\n\nexport interface PanelHeaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n before?: React.ReactNode;\n /**\n * Добавляет элемент справа.\n *\n * При передаче нескольких элементов, расставляет отступы между ними.\n */\n after?: React.ReactNode;\n separator?: boolean;\n transparent?: boolean;\n shadow?: boolean;\n /**\n * Если `false`, то шапка будет нулевой высоты и контент панели \"залезет\" под неё\n */\n visor?: boolean;\n /**\n * Если `false`, то шапка будет в потоке. По умолчанию `true`, но если платформа vkcom, то по умолчанию `false`.\n */\n fixed?: boolean;\n /**\n * По умолчанию как `Component` используется `span`.\n */\n typographyProps?: HasComponent & React.HTMLAttributes<HTMLElement>;\n}\n\nconst PanelHeaderIn = ({\n before,\n after,\n separator,\n children,\n typographyProps = {},\n}: PanelHeaderProps) => {\n const { Component = 'span', ...restProps } = typographyProps;\n const { webviewType } = useConfigProvider();\n const { isInsideModal } = React.useContext(ModalRootContext);\n const platform = usePlatform();\n\n let typographyNode: React.ReactNode;\n\n // TODO [>=6]: Удалить условие\n if (\n React.isValidElement(children) &&\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n (children as JSX.Element).type.displayName === LegacyPanelHeaderContent.displayName\n ) {\n typographyNode = children;\n } else {\n typographyNode =\n platform === Platform.VKCOM ? (\n <Text weight=\"2\" Component={Component} {...restProps}>\n {children}\n </Text>\n ) : (\n <Component className={styles['PanelHeader__content-in']} {...restProps}>\n {children}\n </Component>\n );\n }\n\n return (\n <React.Fragment>\n <TooltipContainer fixed className={styles['PanelHeader__in']}>\n <div\n className={classNames(styles['PanelHeader__before'], 'vkuiInternalPanelHeader__before')}\n >\n {before}\n </div>\n <div className={styles['PanelHeader__content']}>{typographyNode}</div>\n <div className={classNames(styles['PanelHeader__after'], 'vkuiInternalPanelHeader__after')}>\n {(webviewType === WebviewType.INTERNAL || isInsideModal) && after}\n </div>\n </TooltipContainer>\n {separator && platform === Platform.VKCOM && (\n <Separator className={styles['PanelHeader__separator']} wide />\n )}\n </React.Fragment>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeader\n */\nexport const PanelHeader = ({\n before,\n children,\n after,\n separator = true,\n visor = true,\n transparent = false,\n shadow,\n getRef,\n getRootRef,\n fixed,\n className,\n typographyProps,\n ...restProps\n}: PanelHeaderProps) => {\n const platform = usePlatform();\n const { webviewType } = useConfigProvider();\n const { isInsideModal } = React.useContext(ModalRootContext);\n const { sizeX = 'none' } = useAdaptivity();\n const { sizeX: adaptiveSizeX } = useAdaptivityConditionalRender();\n let isFixed = fixed !== undefined ? fixed : platform !== Platform.VKCOM;\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['PanelHeader'],\n 'vkuiInternalPanelHeader',\n platformClassNames.hasOwnProperty(platform)\n ? platformClassNames[platform]\n : platformClassNames.android,\n transparent && styles['PanelHeader--trnsp'],\n shadow && styles['PanelHeader--shadow'],\n visor && classNames(styles['PanelHeader--vis'], 'vkuiInternalPanelHeader--vis'),\n separator &&\n visor &&\n classNames(styles['PanelHeader--sep'], 'vkuiInternalPanelHeader--sep'),\n webviewType === WebviewType.VKAPPS && !isInsideModal && styles['PanelHeader--vkapps'],\n !before &&\n classNames(styles['PanelHeader--no-before'], 'vkuiInternalPanelHeader--no-before'),\n !after && styles['PanelHeader--no-after'],\n isFixed && styles['PanelHeader--fixed'],\n sizeX !== SizeType.COMPACT && sizeXClassNames[sizeX],\n className,\n )}\n ref={isFixed ? getRootRef : getRef}\n >\n {isFixed ? (\n <FixedLayout\n className={classNames(styles['PanelHeader__fixed'], 'vkuiInternalPanelHeader__fixed')}\n vertical=\"top\"\n getRootRef={getRef}\n >\n <PanelHeaderIn\n before={before}\n after={after}\n separator={separator}\n typographyProps={typographyProps}\n >\n {children}\n </PanelHeaderIn>\n </FixedLayout>\n ) : (\n <PanelHeaderIn\n before={before}\n after={after}\n separator={separator}\n typographyProps={typographyProps}\n >\n {children}\n </PanelHeaderIn>\n )}\n {separator && visor && platform !== Platform.VKCOM && (\n <React.Fragment>\n {adaptiveSizeX.compact && <Separator className={adaptiveSizeX.compact.className} />}\n {adaptiveSizeX.regular && (\n <Spacing className={adaptiveSizeX.regular.className} size={16} />\n )}\n </React.Fragment>\n )}\n </div>\n );\n};\n\nPanelHeader.Content = LegacyPanelHeaderContent;\n"],"names":["React","classNames","useAdaptivity","useAdaptivityConditionalRender","usePlatform","SizeType","Platform","useConfigProvider","WebviewType","FixedLayout","ModalRootContext","Separator","Spacing","TooltipContainer","Text","LegacyPanelHeaderContent","platformClassNames","ios","android","vkcom","sizeXClassNames","none","regular","PanelHeaderIn","before","after","separator","children","typographyProps","Component","restProps","webviewType","isInsideModal","useContext","platform","typographyNode","isValidElement","type","displayName","VKCOM","weight","className","Fragment","fixed","div","INTERNAL","wide","PanelHeader","visor","transparent","shadow","getRef","getRootRef","sizeX","adaptiveSizeX","isFixed","undefined","hasOwnProperty","VKAPPS","COMPACT","ref","vertical","compact","size","Content"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeaderBack/PanelHeaderBack.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Icon28ArrowLeftOutline,\n Icon28ChevronBack,\n Icon28ChevronLeftOutline,\n} from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { PanelHeaderButton, PanelHeaderButtonProps } from '../PanelHeaderButton/PanelHeaderButton';\nimport styles from '../PanelHeaderButton/PanelHeaderButton.module.css';\n\nexport type PanelHeaderBackProps = PanelHeaderButtonProps & {\n 'aria-label'?: string;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderBack\n */\nexport const PanelHeaderBack = ({\n label,\n 'aria-label': ariaLabel = 'Назад',\n className,\n ...restProps\n}: PanelHeaderButtonProps) => {\n const platform = usePlatform();\n const { sizeX = 'none' } = useAdaptivity();\n // так-же label нужно скрывать при platform === Platform.IOS && sizeX === regular\n // https://github.com/VKCOM/VKUI/blob/master/src/components/PanelHeaderButton/PanelHeaderButton.css#L104\n const showLabel = platform === Platform.VKCOM || platform === Platform.IOS;\n\n let icon = <Icon28ArrowLeftOutline />;\n switch (platform) {\n case Platform.IOS:\n icon = <Icon28ChevronBack />;\n break;\n case Platform.VKCOM:\n icon = <Icon28ChevronLeftOutline />;\n break;\n }\n\n return (\n <PanelHeaderButton\n {...restProps}\n className={classNames(\n sizeX === SizeType.COMPACT && styles['PanelHeaderBack--sizeX-compact'],\n platform === Platform.IOS && styles['PanelHeaderBack--ios'],\n platform === Platform.VKCOM && styles['PanelHeaderBack--vkcom'],\n showLabel && !!label && styles['PanelHeaderBack--has-label'],\n className,\n )}\n label={showLabel && label}\n aria-label={ariaLabel}\n >\n {icon}\n </PanelHeaderButton>\n );\n};\n"],"names":["React","Icon28ArrowLeftOutline","Icon28ChevronBack","Icon28ChevronLeftOutline","classNames","useAdaptivity","usePlatform","SizeType","Platform","PanelHeaderButton","PanelHeaderBack","label","ariaLabel","className","restProps","platform","sizeX","showLabel","VKCOM","IOS","icon","COMPACT","aria-label"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SACEC,sBAAsB,EACtBC,iBAAiB,EACjBC,wBAAwB,QACnB,mBAAmB;AAC1B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,iBAAiB,QAAgC,yCAAyC;AAOnG;;CAEC,GACD,OAAO,IAAMC,kBAAkB;QAC7BC,eAAAA,OACcC,aAAd,eAAcA,YAAAA,iBAAY,UAAZA,KACdC,mBAAAA,WACGC;QAHHH;QACA;QACAE;;IAGA,IAAME,WAAWT;IACjB,IAA2BD,iBAAAA,wCAAAA,eAAnBW,OAAAA,0CAAQ;IAChB,iFAAiF;IACjF,wGAAwG;IACxG,IAAMC,YAAYF,aAAaP,SAASU,SAASH,aAAaP,SAASW;IAEvE,IAAIC,qBAAO,oBAACnB;IACZ,OAAQc;QACN,KAAKP,SAASW;YACZC,qBAAO,oBAAClB;YACR;QACF,KAAKM,SAASU;YACZE,qBAAO,oBAACjB;YACR;IACJ;IAEA,qBACE,oBAACM,2DACKK;QACJD,WAAWT,WACTY,UAAUT,SAASc,iDACnBN,aAAaP,SAASW,mCACtBJ,aAAaP,SAASU,uCACtBD,aAAa,CAAC,CAACN,2CACfE;QAEFF,OAAOM,aAAaN;QACpBW,cAAYV;QAEXQ;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeaderBack/PanelHeaderBack.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Icon28ArrowLeftOutline,\n Icon28ChevronBack,\n Icon28ChevronLeftOutline,\n} from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { PanelHeaderButton, PanelHeaderButtonProps } from '../PanelHeaderButton/PanelHeaderButton';\nimport styles from '../PanelHeaderButton/PanelHeaderButton.module.css';\n\nexport type PanelHeaderBackProps = PanelHeaderButtonProps & {\n 'aria-label'?: string;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderBack\n */\nexport const PanelHeaderBack = ({\n label,\n 'aria-label': ariaLabel = 'Назад',\n className,\n ...restProps\n}: PanelHeaderButtonProps) => {\n const platform = usePlatform();\n const { sizeX = 'none' } = useAdaptivity();\n // так-же label нужно скрывать при platform === Platform.IOS && sizeX === regular\n // https://github.com/VKCOM/VKUI/blob/master/src/components/PanelHeaderButton/PanelHeaderButton.css#L104\n const showLabel = platform === Platform.VKCOM || platform === Platform.IOS;\n\n let icon = <Icon28ArrowLeftOutline />;\n switch (platform) {\n case Platform.IOS:\n icon = <Icon28ChevronBack />;\n break;\n case Platform.VKCOM:\n icon = <Icon28ChevronLeftOutline />;\n break;\n }\n\n return (\n <PanelHeaderButton\n {...restProps}\n className={classNames(\n sizeX === SizeType.COMPACT && styles['PanelHeaderBack--sizeX-compact'],\n platform === Platform.IOS && styles['PanelHeaderBack--ios'],\n platform === Platform.VKCOM && styles['PanelHeaderBack--vkcom'],\n showLabel && !!label && styles['PanelHeaderBack--has-label'],\n className,\n )}\n label={showLabel && label}\n aria-label={ariaLabel}\n >\n {icon}\n </PanelHeaderButton>\n );\n};\n"],"names":["React","Icon28ArrowLeftOutline","Icon28ChevronBack","Icon28ChevronLeftOutline","classNames","useAdaptivity","usePlatform","SizeType","Platform","PanelHeaderButton","PanelHeaderBack","label","ariaLabel","className","restProps","platform","sizeX","showLabel","VKCOM","IOS","icon","COMPACT","aria-label"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SACEC,sBAAsB,EACtBC,iBAAiB,EACjBC,wBAAwB,QACnB,mBAAmB;AAC1B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,iBAAiB,QAAgC,yCAAyC;AAOnG;;CAEC,GACD,OAAO,IAAMC,kBAAkB;QAC7BC,eAAAA,OACcC,aAAd,eAAcA,YAAAA,iBAAY,UAAZA,KACdC,mBAAAA,WACGC;QAHHH;QACA;QACAE;;IAGA,IAAME,WAAWT;IACjB,IAA2BD,iBAAAA,wCAAAA,eAAnBW,OAAAA,0CAAQ;IAChB,iFAAiF;IACjF,wGAAwG;IACxG,IAAMC,YAAYF,aAAaP,SAASU,KAAK,IAAIH,aAAaP,SAASW,GAAG;IAE1E,IAAIC,qBAAO,oBAACnB;IACZ,OAAQc;QACN,KAAKP,SAASW,GAAG;YACfC,qBAAO,oBAAClB;YACR;QACF,KAAKM,SAASU,KAAK;YACjBE,qBAAO,oBAACjB;YACR;IACJ;IAEA,qBACE,oBAACM,2DACKK;QACJD,WAAWT,WACTY,UAAUT,SAASc,OAAO,0CAC1BN,aAAaP,SAASW,GAAG,gCACzBJ,aAAaP,SAASU,KAAK,kCAC3BD,aAAa,CAAC,CAACN,2CACfE;QAEFF,OAAOM,aAAaN;QACpBW,cAAYV;QAEXQ;AAGP,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeaderButton/PanelHeaderButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, isPrimitiveReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { getTitleFromChildren } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { Tappable, TappableProps } from '../Tappable/Tappable';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './PanelHeaderButton.module.css';\n\nconst platformClassNames = {\n ios: styles['PanelHeaderButton--ios'],\n android: styles['PanelHeaderButton--android'],\n vkcom: styles['PanelHeaderButton--vkcom'],\n};\n\nexport interface PanelHeaderButtonProps extends Omit<TappableProps, 'label'> {\n primary?: boolean;\n label?: React.ReactNode;\n}\n\ninterface ButtonTypographyProps extends React.AllHTMLAttributes<HTMLElement> {\n primary?: PanelHeaderButtonProps['primary'];\n}\n\nconst ButtonTypography = ({ primary, children }: ButtonTypographyProps) => {\n const platform = usePlatform();\n\n if (platform === Platform.IOS) {\n return (\n <Title Component=\"span\" level=\"3\" weight={primary ? '1' : '3'}>\n {children}\n </Title>\n );\n }\n\n return <Text weight={platform === Platform.VKCOM ? undefined : '2'}>{children}</Text>;\n};\n\nconst warn = warnOnce('PanelHeaderButton');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderButton\n */\nexport const PanelHeaderButton = ({\n children,\n primary = false,\n label,\n className,\n ...restProps\n}: PanelHeaderButtonProps) => {\n const isPrimitive = isPrimitiveReactNode(children);\n const isPrimitiveLabel = isPrimitiveReactNode(label);\n const platform = usePlatform();\n\n let hoverMode;\n let activeMode;\n\n switch (platform) {\n case Platform.IOS:\n hoverMode = 'background';\n activeMode = 'opacity';\n break;\n case Platform.VKCOM:\n hoverMode = styles['PanelHeaderButton--hover'];\n activeMode = styles['PanelHeaderButton--active'];\n break;\n default:\n hoverMode = 'background';\n activeMode = 'background';\n }\n\n if (process.env.NODE_ENV === 'development') {\n const hasAccessibleName = Boolean(\n getTitleFromChildren(children) ||\n getTitleFromChildren(label) ||\n restProps['aria-label'] ||\n restProps['aria-labelledby'],\n );\n\n if (!hasAccessibleName) {\n warn(\n 'a11y: У кнопки нет названия, которое может прочитать скринридер, и она недоступна для части пользователей. Замените содержимое на текст или добавьте описание действия с помощью пропа aria-label.',\n 'error',\n );\n }\n }\n\n return (\n <Tappable\n Component={restProps.href ? 'a' : 'button'}\n {...restProps}\n hoverMode={hoverMode}\n activeEffectDelay={200}\n activeMode={activeMode}\n className={classNames(\n 'vkuiInternalPanelHeaderButton',\n styles['PanelHeaderButton'],\n platformClassNames.hasOwnProperty(platform)\n ? platformClassNames[platform]\n : platformClassNames.android,\n isPrimitive && styles['PanelHeaderButton--primitive'],\n !isPrimitive && !isPrimitiveLabel && styles['PanelHeaderButton--notPrimitive'],\n className,\n )}\n >\n {isPrimitive ? <ButtonTypography primary={primary}>{children}</ButtonTypography> : children}\n {isPrimitiveLabel ? (\n <ButtonTypography primary={primary} className={styles['PanelHeaderButton__label']}>\n {label}\n </ButtonTypography>\n ) : (\n label\n )}\n </Tappable>\n );\n};\n"],"names":["React","classNames","isPrimitiveReactNode","usePlatform","Platform","getTitleFromChildren","warnOnce","Tappable","Text","Title","platformClassNames","ios","android","vkcom","ButtonTypography","primary","children","platform","IOS","Component","level","weight","VKCOM","undefined","warn","PanelHeaderButton","label","className","restProps","isPrimitive","isPrimitiveLabel","hoverMode","activeMode","process","env","NODE_ENV","hasAccessibleName","Boolean","href","activeEffectDelay","hasOwnProperty"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,oBAAoB,QAAQ,kBAAkB;AACnE,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,oBAAoB,QAAQ,kBAAkB;AACvD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,QAAQ,QAAuB,uBAAuB;AAC/D,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,SAASC,KAAK,QAAQ,4BAA4B;AAGlD,IAAMC,qBAAqB;IACzBC,GAAG;IACHC,OAAO;IACPC,KAAK;AACP;AAWA,IAAMC,mBAAmB;QAAGC,gBAAAA,SAASC,iBAAAA;IACnC,IAAMC,WAAWd;IAEjB,IAAIc,aAAab,SAASc,KAAK;QAC7B,qBACE,oBAACT;YAAMU,WAAU;YAAOC,OAAM;YAAIC,QAAQN,UAAU,MAAM;WACvDC;IAGP;IAEA,qBAAO,oBAACR;QAAKa,QAAQJ,aAAab,SAASkB,QAAQC,YAAY;OAAMP;AACvE;AAEA,IAAMQ,OAAOlB,SAAS;AAEtB;;CAEC,GACD,OAAO,IAAMmB,oBAAoB;QAC/BT,kBAAAA,kCACAD,SAAAA,sCAAU,wBACVW,eAAAA,OACAC,mBAAAA,WACGC;QAJHZ;QACAD;QACAW;QACAC;;IAGA,IAAME,cAAc3B,qBAAqBc;IACzC,IAAMc,mBAAmB5B,qBAAqBwB;IAC9C,IAAMT,WAAWd;IAEjB,IAAI4B;IACJ,IAAIC;IAEJ,OAAQf;QACN,KAAKb,SAASc;YACZa,YAAY;YACZC,aAAa;YACb;QACF,KAAK5B,SAASkB;YACZS;YACAC;YACA;QACF;YACED,YAAY;YACZC,aAAa;IACjB;IAEA,IAAIC,QAAQC,IAAIC,aAAa,eAAe;QAC1C,IAAMC,oBAAoBC,QACxBhC,qBAAqBW,aACnBX,qBAAqBqB,UACrBE,SAAS,CAAC,aAAa,IACvBA,SAAS,CAAC,kBAAkB;QAGhC,IAAI,CAACQ,mBAAmB;YACtBZ,KACE,sMACA;QAEJ;IACF;IAEA,qBACE,oBAACjB;QACCY,WAAWS,UAAUU,OAAO,MAAM;OAC9BV;QACJG,WAAWA;QACXQ,mBAAmB;QACnBP,YAAYA;QACZL,WAAW1B,WACT,0DAEAS,mBAAmB8B,eAAevB,YAC9BP,kBAAkB,CAACO,SAAS,GAC5BP,mBAAmBE,SACvBiB,mDACA,CAACA,eAAe,CAACC,2DACjBH;QAGDE,4BAAc,oBAACf;QAAiBC,SAASA;OAAUC,YAA+BA,UAClFc,iCACC,oBAAChB;QAAiBC,SAASA;QAASY,SAAS;OAC1CD,SAGHA;AAIR,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeaderButton/PanelHeaderButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, isPrimitiveReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { getTitleFromChildren } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { Tappable, TappableProps } from '../Tappable/Tappable';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './PanelHeaderButton.module.css';\n\nconst platformClassNames = {\n ios: styles['PanelHeaderButton--ios'],\n android: styles['PanelHeaderButton--android'],\n vkcom: styles['PanelHeaderButton--vkcom'],\n};\n\nexport interface PanelHeaderButtonProps extends Omit<TappableProps, 'label'> {\n primary?: boolean;\n label?: React.ReactNode;\n}\n\ninterface ButtonTypographyProps extends React.AllHTMLAttributes<HTMLElement> {\n primary?: PanelHeaderButtonProps['primary'];\n}\n\nconst ButtonTypography = ({ primary, children }: ButtonTypographyProps) => {\n const platform = usePlatform();\n\n if (platform === Platform.IOS) {\n return (\n <Title Component=\"span\" level=\"3\" weight={primary ? '1' : '3'}>\n {children}\n </Title>\n );\n }\n\n return <Text weight={platform === Platform.VKCOM ? undefined : '2'}>{children}</Text>;\n};\n\nconst warn = warnOnce('PanelHeaderButton');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderButton\n */\nexport const PanelHeaderButton = ({\n children,\n primary = false,\n label,\n className,\n ...restProps\n}: PanelHeaderButtonProps) => {\n const isPrimitive = isPrimitiveReactNode(children);\n const isPrimitiveLabel = isPrimitiveReactNode(label);\n const platform = usePlatform();\n\n let hoverMode;\n let activeMode;\n\n switch (platform) {\n case Platform.IOS:\n hoverMode = 'background';\n activeMode = 'opacity';\n break;\n case Platform.VKCOM:\n hoverMode = styles['PanelHeaderButton--hover'];\n activeMode = styles['PanelHeaderButton--active'];\n break;\n default:\n hoverMode = 'background';\n activeMode = 'background';\n }\n\n if (process.env.NODE_ENV === 'development') {\n const hasAccessibleName = Boolean(\n getTitleFromChildren(children) ||\n getTitleFromChildren(label) ||\n restProps['aria-label'] ||\n restProps['aria-labelledby'],\n );\n\n if (!hasAccessibleName) {\n warn(\n 'a11y: У кнопки нет названия, которое может прочитать скринридер, и она недоступна для части пользователей. Замените содержимое на текст или добавьте описание действия с помощью пропа aria-label.',\n 'error',\n );\n }\n }\n\n return (\n <Tappable\n Component={restProps.href ? 'a' : 'button'}\n {...restProps}\n hoverMode={hoverMode}\n activeEffectDelay={200}\n activeMode={activeMode}\n className={classNames(\n 'vkuiInternalPanelHeaderButton',\n styles['PanelHeaderButton'],\n platformClassNames.hasOwnProperty(platform)\n ? platformClassNames[platform]\n : platformClassNames.android,\n isPrimitive && styles['PanelHeaderButton--primitive'],\n !isPrimitive && !isPrimitiveLabel && styles['PanelHeaderButton--notPrimitive'],\n className,\n )}\n >\n {isPrimitive ? <ButtonTypography primary={primary}>{children}</ButtonTypography> : children}\n {isPrimitiveLabel ? (\n <ButtonTypography primary={primary} className={styles['PanelHeaderButton__label']}>\n {label}\n </ButtonTypography>\n ) : (\n label\n )}\n </Tappable>\n );\n};\n"],"names":["React","classNames","isPrimitiveReactNode","usePlatform","Platform","getTitleFromChildren","warnOnce","Tappable","Text","Title","platformClassNames","ios","android","vkcom","ButtonTypography","primary","children","platform","IOS","Component","level","weight","VKCOM","undefined","warn","PanelHeaderButton","label","className","restProps","isPrimitive","isPrimitiveLabel","hoverMode","activeMode","process","env","NODE_ENV","hasAccessibleName","Boolean","href","activeEffectDelay","hasOwnProperty"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,oBAAoB,QAAQ,kBAAkB;AACnE,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,oBAAoB,QAAQ,kBAAkB;AACvD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,QAAQ,QAAuB,uBAAuB;AAC/D,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,SAASC,KAAK,QAAQ,4BAA4B;AAGlD,IAAMC,qBAAqB;IACzBC,GAAG;IACHC,OAAO;IACPC,KAAK;AACP;AAWA,IAAMC,mBAAmB;QAAGC,gBAAAA,SAASC,iBAAAA;IACnC,IAAMC,WAAWd;IAEjB,IAAIc,aAAab,SAASc,GAAG,EAAE;QAC7B,qBACE,oBAACT;YAAMU,WAAU;YAAOC,OAAM;YAAIC,QAAQN,UAAU,MAAM;WACvDC;IAGP;IAEA,qBAAO,oBAACR;QAAKa,QAAQJ,aAAab,SAASkB,KAAK,GAAGC,YAAY;OAAMP;AACvE;AAEA,IAAMQ,OAAOlB,SAAS;AAEtB;;CAEC,GACD,OAAO,IAAMmB,oBAAoB;QAC/BT,kBAAAA,kCACAD,SAAAA,sCAAU,wBACVW,eAAAA,OACAC,mBAAAA,WACGC;QAJHZ;QACAD;QACAW;QACAC;;IAGA,IAAME,cAAc3B,qBAAqBc;IACzC,IAAMc,mBAAmB5B,qBAAqBwB;IAC9C,IAAMT,WAAWd;IAEjB,IAAI4B;IACJ,IAAIC;IAEJ,OAAQf;QACN,KAAKb,SAASc,GAAG;YACfa,YAAY;YACZC,aAAa;YACb;QACF,KAAK5B,SAASkB,KAAK;YACjBS;YACAC;YACA;QACF;YACED,YAAY;YACZC,aAAa;IACjB;IAEA,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,IAAMC,oBAAoBC,QACxBhC,qBAAqBW,aACnBX,qBAAqBqB,UACrBE,SAAS,CAAC,aAAa,IACvBA,SAAS,CAAC,kBAAkB;QAGhC,IAAI,CAACQ,mBAAmB;YACtBZ,KACE,sMACA;QAEJ;IACF;IAEA,qBACE,oBAACjB;QACCY,WAAWS,UAAUU,IAAI,GAAG,MAAM;OAC9BV;QACJG,WAAWA;QACXQ,mBAAmB;QACnBP,YAAYA;QACZL,WAAW1B,WACT,0DAEAS,mBAAmB8B,cAAc,CAACvB,YAC9BP,kBAAkB,CAACO,SAAS,GAC5BP,mBAAmBE,OAAO,EAC9BiB,mDACA,CAACA,eAAe,CAACC,2DACjBH;QAGDE,4BAAc,oBAACf;QAAiBC,SAASA;OAAUC,YAA+BA,UAClFc,iCACC,oBAAChB;QAAiBC,SAASA;QAASY,SAAS;OAC1CD,SAGHA;AAIR,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeaderClose/PanelHeaderClose.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon28CancelOutline } from '@vkontakte/icons';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { getTitleFromChildren } from '../../lib/utils';\nimport { PanelHeaderButton, PanelHeaderButtonProps } from '../PanelHeaderButton/PanelHeaderButton';\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderClose\n */\nexport const PanelHeaderClose = ({ children = 'Отмена', ...restProps }: PanelHeaderButtonProps) => {\n const platform = usePlatform();\n return (\n <PanelHeaderButton aria-label={getTitleFromChildren(children)} {...restProps}>\n {platform === Platform.IOS ? children : <Icon28CancelOutline />}\n </PanelHeaderButton>\n );\n};\n"],"names":["React","Icon28CancelOutline","usePlatform","Platform","getTitleFromChildren","PanelHeaderButton","PanelHeaderClose","children","restProps","platform","aria-label","IOS"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,mBAAmB,QAAQ,mBAAmB;AACvD,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,oBAAoB,QAAQ,kBAAkB;AACvD,SAASC,iBAAiB,QAAgC,yCAAyC;AAEnG;;CAEC,GACD,OAAO,IAAMC,mBAAmB;iCAAGC,UAAAA,wCAAW,4BAAaC;QAAxBD;;IACjC,IAAME,WAAWP;IACjB,qBACE,oBAACG;QAAkBK,cAAYN,qBAAqBG;OAAeC,YAChEC,aAAaN,SAASQ,MAAMJ,yBAAW,oBAACN;AAG/C,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeaderClose/PanelHeaderClose.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon28CancelOutline } from '@vkontakte/icons';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { getTitleFromChildren } from '../../lib/utils';\nimport { PanelHeaderButton, PanelHeaderButtonProps } from '../PanelHeaderButton/PanelHeaderButton';\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderClose\n */\nexport const PanelHeaderClose = ({ children = 'Отмена', ...restProps }: PanelHeaderButtonProps) => {\n const platform = usePlatform();\n return (\n <PanelHeaderButton aria-label={getTitleFromChildren(children)} {...restProps}>\n {platform === Platform.IOS ? children : <Icon28CancelOutline />}\n </PanelHeaderButton>\n );\n};\n"],"names":["React","Icon28CancelOutline","usePlatform","Platform","getTitleFromChildren","PanelHeaderButton","PanelHeaderClose","children","restProps","platform","aria-label","IOS"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,mBAAmB,QAAQ,mBAAmB;AACvD,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,oBAAoB,QAAQ,kBAAkB;AACvD,SAASC,iBAAiB,QAAgC,yCAAyC;AAEnG;;CAEC,GACD,OAAO,IAAMC,mBAAmB;iCAAGC,UAAAA,wCAAW,4BAAaC;QAAxBD;;IACjC,IAAME,WAAWP;IACjB,qBACE,oBAACG;QAAkBK,cAAYN,qBAAqBG;OAAeC,YAChEC,aAAaN,SAASQ,GAAG,GAAGJ,yBAAW,oBAACN;AAG/C,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeaderContent/PanelHeaderContent.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasChildren } from '../../types';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './PanelHeaderContent.module.css';\n\nconst platformClassNames = {\n ios: styles['PanelHeaderContent--ios'],\n android: styles['PanelHeaderContent--android'],\n vkcom: styles['PanelHeaderContent--vkcom'],\n};\n\nexport interface PanelHeaderContentProps extends React.HTMLAttributes<HTMLDivElement> {\n aside?: React.ReactNode;\n before?: React.ReactNode;\n status?: React.ReactNode;\n}\n\ninterface PanelHeaderChildrenProps extends HasChildren {\n hasStatus: boolean;\n hasBefore: boolean;\n}\n\nconst PanelHeaderChildren = ({ hasStatus, hasBefore, children }: PanelHeaderChildrenProps) => {\n const platform = usePlatform();\n if (platform === Platform.VKCOM) {\n return (\n <Text className={styles['PanelHeaderContent__childrenText']} Component=\"div\" weight=\"2\">\n {children}\n </Text>\n );\n }\n\n return hasStatus || hasBefore ? (\n <Headline className={styles['PanelHeaderContent__childrenText']} Component=\"div\" weight=\"2\">\n {children}\n </Headline>\n ) : (\n <div className={styles['PanelHeaderContent__children-in']}>{children}</div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderContent\n */\nexport const PanelHeaderContent = ({\n className,\n style,\n aside,\n status,\n before,\n children,\n onClick,\n ...restProps\n}: PanelHeaderContentProps) => {\n const InComponent = onClick ? Tappable : 'div';\n const rootProps = onClick ? {} : restProps;\n const platform = usePlatform();\n const inProps = onClick\n ? {\n ...restProps,\n onClick,\n activeEffectDelay: 200,\n hasActive: platform === Platform.IOS,\n activeMode: 'opacity',\n }\n : {};\n\n return (\n <div\n {...rootProps}\n style={style}\n className={classNames(\n styles['PanelHeaderContent'],\n platformClassNames.hasOwnProperty(platform)\n ? platformClassNames[platform]\n : platformClassNames.android,\n className,\n )}\n >\n {hasReactNode(before) && <div className={styles['PanelHeaderContent__before']}>{before}</div>}\n <InComponent\n {...inProps}\n className={classNames(\n styles['PanelHeaderContent__in'],\n !before && platform !== Platform.ANDROID && styles['PanelHeaderContent__in--centered'],\n )}\n >\n {hasReactNode(status) && (\n <Footnote className={styles['PanelHeaderContent__status']}>{status}</Footnote>\n )}\n <div className={styles['PanelHeaderContent__children']}>\n <PanelHeaderChildren hasStatus={hasReactNode(status)} hasBefore={hasReactNode(before)}>\n {children}\n </PanelHeaderChildren>\n {hasReactNode(aside) && (\n <div className={styles['PanelHeaderContent__aside']}>{aside}</div>\n )}\n </div>\n {hasReactNode(before) && <div className={styles['PanelHeaderContent__width']} />}\n </InComponent>\n </div>\n );\n};\n"],"names":["React","classNames","hasReactNode","usePlatform","Platform","Tappable","Footnote","Headline","Text","platformClassNames","ios","android","vkcom","PanelHeaderChildren","hasStatus","hasBefore","children","platform","VKCOM","className","Component","weight","div","PanelHeaderContent","style","aside","status","before","onClick","restProps","InComponent","rootProps","inProps","activeEffectDelay","hasActive","IOS","activeMode","hasOwnProperty","ANDROID"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,IAAI,QAAQ,0BAA0B;AAG/C,IAAMC,qBAAqB;IACzBC,GAAG;IACHC,OAAO;IACPC,KAAK;AACP;AAaA,IAAMC,sBAAsB;QAAGC,kBAAAA,WAAWC,kBAAAA,WAAWC,iBAAAA;IACnD,IAAMC,WAAWd;IACjB,IAAIc,aAAab,SAASc,OAAO;QAC/B,qBACE,oBAACV;YAAKW,SAAS;YAA8CC,WAAU;YAAMC,QAAO;WACjFL;IAGP;IAEA,OAAOF,aAAaC,0BAClB,oBAACR;QAASY,SAAS;QAA8CC,WAAU;QAAMC,QAAO;OACrFL,0BAGH,oBAACM;QAAIH,SAAS;OAA8CH;AAEhE;AAEA;;CAEC,GACD,OAAO,IAAMO,qBAAqB;QAChCJ,mBAAAA,WACAK,eAAAA,OACAC,eAAAA,OACAC,gBAAAA,QACAC,gBAAAA,QACAX,kBAAAA,UACAY,iBAAAA,SACGC;QAPHV;QACAK;QACAC;QACAC;QACAC;QACAX;QACAY;;IAGA,IAAME,cAAcF,UAAUvB,WAAW;IACzC,IAAM0B,YAAYH,UAAU,CAAC,IAAIC;IACjC,IAAMZ,WAAWd;IACjB,IAAM6B,UAAUJ,UACZ,wCACKC;QACHD,SAAAA;QACAK,mBAAmB;QACnBC,WAAWjB,aAAab,SAAS+B;QACjCC,YAAY;SAEd,CAAC;IAEL,qBACE,oBAACd,+CACKS;QACJP,OAAOA;QACPL,WAAWlB,qCAETQ,mBAAmB4B,eAAepB,YAC9BR,kBAAkB,CAACQ,SAAS,GAC5BR,mBAAmBE,SACvBQ;QAGDjB,aAAayB,yBAAW,oBAACL;QAAIH,SAAS;OAAyCQ,uBAChF,oBAACG,qDACKE;QACJb,WAAWlB,yCAET,CAAC0B,UAAUV,aAAab,SAASkC;QAGlCpC,aAAawB,yBACZ,oBAACpB;QAASa,SAAS;OAAyCO,uBAE9D,oBAACJ;QAAIH,SAAS;qBACZ,oBAACN;QAAoBC,WAAWZ,aAAawB;QAASX,WAAWb,aAAayB;OAC3EX,WAEFd,aAAauB,wBACZ,oBAACH;QAAIH,SAAS;OAAwCM,SAGzDvB,aAAayB,yBAAW,oBAACL;QAAIH,SAAS;;AAI/C,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeaderContent/PanelHeaderContent.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasChildren } from '../../types';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './PanelHeaderContent.module.css';\n\nconst platformClassNames = {\n ios: styles['PanelHeaderContent--ios'],\n android: styles['PanelHeaderContent--android'],\n vkcom: styles['PanelHeaderContent--vkcom'],\n};\n\nexport interface PanelHeaderContentProps extends React.HTMLAttributes<HTMLDivElement> {\n aside?: React.ReactNode;\n before?: React.ReactNode;\n status?: React.ReactNode;\n}\n\ninterface PanelHeaderChildrenProps extends HasChildren {\n hasStatus: boolean;\n hasBefore: boolean;\n}\n\nconst PanelHeaderChildren = ({ hasStatus, hasBefore, children }: PanelHeaderChildrenProps) => {\n const platform = usePlatform();\n if (platform === Platform.VKCOM) {\n return (\n <Text className={styles['PanelHeaderContent__childrenText']} Component=\"div\" weight=\"2\">\n {children}\n </Text>\n );\n }\n\n return hasStatus || hasBefore ? (\n <Headline className={styles['PanelHeaderContent__childrenText']} Component=\"div\" weight=\"2\">\n {children}\n </Headline>\n ) : (\n <div className={styles['PanelHeaderContent__children-in']}>{children}</div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderContent\n */\nexport const PanelHeaderContent = ({\n className,\n style,\n aside,\n status,\n before,\n children,\n onClick,\n ...restProps\n}: PanelHeaderContentProps) => {\n const InComponent = onClick ? Tappable : 'div';\n const rootProps = onClick ? {} : restProps;\n const platform = usePlatform();\n const inProps = onClick\n ? {\n ...restProps,\n onClick,\n activeEffectDelay: 200,\n hasActive: platform === Platform.IOS,\n activeMode: 'opacity',\n }\n : {};\n\n return (\n <div\n {...rootProps}\n style={style}\n className={classNames(\n styles['PanelHeaderContent'],\n platformClassNames.hasOwnProperty(platform)\n ? platformClassNames[platform]\n : platformClassNames.android,\n className,\n )}\n >\n {hasReactNode(before) && <div className={styles['PanelHeaderContent__before']}>{before}</div>}\n <InComponent\n {...inProps}\n className={classNames(\n styles['PanelHeaderContent__in'],\n !before && platform !== Platform.ANDROID && styles['PanelHeaderContent__in--centered'],\n )}\n >\n {hasReactNode(status) && (\n <Footnote className={styles['PanelHeaderContent__status']}>{status}</Footnote>\n )}\n <div className={styles['PanelHeaderContent__children']}>\n <PanelHeaderChildren hasStatus={hasReactNode(status)} hasBefore={hasReactNode(before)}>\n {children}\n </PanelHeaderChildren>\n {hasReactNode(aside) && (\n <div className={styles['PanelHeaderContent__aside']}>{aside}</div>\n )}\n </div>\n {hasReactNode(before) && <div className={styles['PanelHeaderContent__width']} />}\n </InComponent>\n </div>\n );\n};\n"],"names":["React","classNames","hasReactNode","usePlatform","Platform","Tappable","Footnote","Headline","Text","platformClassNames","ios","android","vkcom","PanelHeaderChildren","hasStatus","hasBefore","children","platform","VKCOM","className","Component","weight","div","PanelHeaderContent","style","aside","status","before","onClick","restProps","InComponent","rootProps","inProps","activeEffectDelay","hasActive","IOS","activeMode","hasOwnProperty","ANDROID"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,IAAI,QAAQ,0BAA0B;AAG/C,IAAMC,qBAAqB;IACzBC,GAAG;IACHC,OAAO;IACPC,KAAK;AACP;AAaA,IAAMC,sBAAsB;QAAGC,kBAAAA,WAAWC,kBAAAA,WAAWC,iBAAAA;IACnD,IAAMC,WAAWd;IACjB,IAAIc,aAAab,SAASc,KAAK,EAAE;QAC/B,qBACE,oBAACV;YAAKW,SAAS;YAA8CC,WAAU;YAAMC,QAAO;WACjFL;IAGP;IAEA,OAAOF,aAAaC,0BAClB,oBAACR;QAASY,SAAS;QAA8CC,WAAU;QAAMC,QAAO;OACrFL,0BAGH,oBAACM;QAAIH,SAAS;OAA8CH;AAEhE;AAEA;;CAEC,GACD,OAAO,IAAMO,qBAAqB;QAChCJ,mBAAAA,WACAK,eAAAA,OACAC,eAAAA,OACAC,gBAAAA,QACAC,gBAAAA,QACAX,kBAAAA,UACAY,iBAAAA,SACGC;QAPHV;QACAK;QACAC;QACAC;QACAC;QACAX;QACAY;;IAGA,IAAME,cAAcF,UAAUvB,WAAW;IACzC,IAAM0B,YAAYH,UAAU,CAAC,IAAIC;IACjC,IAAMZ,WAAWd;IACjB,IAAM6B,UAAUJ,UACZ,wCACKC;QACHD,SAAAA;QACAK,mBAAmB;QACnBC,WAAWjB,aAAab,SAAS+B,GAAG;QACpCC,YAAY;SAEd,CAAC;IAEL,qBACE,oBAACd,+CACKS;QACJP,OAAOA;QACPL,WAAWlB,qCAETQ,mBAAmB4B,cAAc,CAACpB,YAC9BR,kBAAkB,CAACQ,SAAS,GAC5BR,mBAAmBE,OAAO,EAC9BQ;QAGDjB,aAAayB,yBAAW,oBAACL;QAAIH,SAAS;OAAyCQ,uBAChF,oBAACG,qDACKE;QACJb,WAAWlB,yCAET,CAAC0B,UAAUV,aAAab,SAASkC,OAAO;QAGzCpC,aAAawB,yBACZ,oBAACpB;QAASa,SAAS;OAAyCO,uBAE9D,oBAACJ;QAAIH,SAAS;qBACZ,oBAACN;QAAoBC,WAAWZ,aAAawB;QAASX,WAAWb,aAAayB;OAC3EX,WAEFd,aAAauB,wBACZ,oBAACH;QAAIH,SAAS;OAAwCM,SAGzDvB,aAAayB,yBAAW,oBAACL;QAAIH,SAAS;;AAI/C,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeaderContext/PanelHeaderContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { SizeType } from '../../lib/adaptivity';\nimport { useDOM } from '../../lib/dom';\nimport { Platform } from '../../lib/platform';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { FixedLayout } from '../FixedLayout/FixedLayout';\nimport styles from './PanelHeaderContext.module.css';\n\nconst sizeXClassNames = {\n none: styles['PanelHeaderContext--sizeX-none'],\n [SizeType.COMPACT]: styles['PanelHeaderContext--sizeX-compact'],\n [SizeType.REGULAR]: styles['PanelHeaderContext--sizeX-regular'],\n};\n\nexport interface PanelHeaderContextProps extends React.HTMLAttributes<HTMLDivElement> {\n opened: boolean;\n onClose: VoidFunction;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderContext\n */\nexport const PanelHeaderContext = ({\n children,\n onClose,\n opened = false,\n className,\n ...restProps\n}: PanelHeaderContextProps) => {\n const { document } = useDOM();\n const platform = usePlatform();\n const [visible, setVisible] = React.useState(opened);\n const closing = visible && !opened;\n const { sizeX = 'none' } = useAdaptivity();\n const elementRef = React.useRef<HTMLDivElement>(null);\n\n useIsomorphicLayoutEffect(() => {\n opened && setVisible(true);\n }, [opened]);\n\n useScrollLock(platform !== Platform.VKCOM && opened);\n\n // start closing on outer click\n useGlobalEventListener(\n document,\n 'click',\n opened &&\n !closing &&\n ((event) => {\n if (elementRef.current && !elementRef.current.contains(event.target as Node)) {\n event.stopPropagation();\n onClose();\n }\n }),\n { capture: true },\n );\n\n // fallback onAnimationEnd when animationend not supported\n const onAnimationEnd = () => setVisible(false);\n const animationFallback = useTimeout(onAnimationEnd, 200);\n React.useEffect(\n () => (closing ? animationFallback.set() : animationFallback.clear()),\n [animationFallback, closing],\n );\n\n return (\n <FixedLayout\n {...restProps}\n className={classNames(\n styles['PanelHeaderContext'],\n platform === Platform.IOS && styles['PanelHeaderContext--ios'],\n opened && styles['PanelHeaderContext--opened'],\n closing && styles['PanelHeaderContext--closing'],\n sizeXClassNames[sizeX],\n className,\n )}\n vertical=\"top\"\n >\n {visible && (\n <div\n onClick={(event) => {\n event.stopPropagation();\n onClose();\n }}\n className={styles['PanelHeaderContext__fade']}\n />\n )}\n <div\n className={styles['PanelHeaderContext__in']}\n ref={elementRef}\n onAnimationEnd={closing ? onAnimationEnd : undefined}\n >\n {visible && <div className={styles['PanelHeaderContext__content']}>{children}</div>}\n </div>\n </FixedLayout>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useGlobalEventListener","usePlatform","useTimeout","SizeType","useDOM","Platform","useIsomorphicLayoutEffect","useScrollLock","FixedLayout","sizeXClassNames","none","COMPACT","REGULAR","PanelHeaderContext","children","onClose","opened","className","restProps","document","platform","useState","visible","setVisible","closing","sizeX","elementRef","useRef","VKCOM","event","current","contains","target","stopPropagation","capture","onAnimationEnd","animationFallback","useEffect","set","clear","IOS","vertical","div","onClick","ref","undefined"],"mappings":";;;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,sBAAsB,QAAQ,qCAAqC;AAC5E,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,yBAAyB,QAAQ,sCAAsC;AAChF,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,WAAW,QAAQ,6BAA6B;IAGjC;AAAxB,IAAMC,mBAAkB;IACtBC,IAAI;oBADkB,MAErBP,SAASQ,oEAFY,MAGrBR,SAASS,mDAHY;AAWxB;;CAEC,GACD,OAAO,IAAMC,qBAAqB;QAChCC,kBAAAA,UACAC,iBAAAA,gCACAC,QAAAA,oCAAS,uBACTC,mBAAAA,WACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAM,AAAEE,WAAaf,SAAbe;IACR,IAAMC,WAAWnB;IACjB,IAA8BJ,mCAAAA,MAAMwB,SAASL,aAAtCM,UAAuBzB,oBAAd0B,aAAc1B;IAC9B,IAAM2B,UAAUF,WAAW,CAACN;IAC5B,IAA2BjB,iBAAAA,wCAAAA,eAAnB0B,OAAAA,0CAAQ;IAChB,IAAMC,aAAa7B,MAAM8B,OAAuB;IAEhDrB,0BAA0B;QACxBU,UAAUO,WAAW;IACvB,GAAG;QAACP;KAAO;IAEXT,cAAca,aAAaf,SAASuB,SAASZ;IAE7C,+BAA+B;IAC/BhB,uBACEmB,UACA,SACAH,UACE,CAACQ,WACA,SAACK;QACA,IAAIH,WAAWI,WAAW,CAACJ,WAAWI,QAAQC,SAASF,MAAMG,SAAiB;YAC5EH,MAAMI;YACNlB;QACF;IACF,GACF;QAAEmB,SAAS;IAAK;IAGlB,0DAA0D;IAC1D,IAAMC,iBAAiB;eAAMZ,WAAW;;IACxC,IAAMa,oBAAoBlC,WAAWiC,gBAAgB;IACrDtC,MAAMwC,UACJ;eAAOb,UAAUY,kBAAkBE,QAAQF,kBAAkBG;OAC7D;QAACH;QAAmBZ;KAAQ;IAG9B,qBACE,oBAAChB,qDACKU;QACJD,WAAWnB,qCAETsB,aAAaf,SAASmC,sCACtBxB,4CACAQ,8CACAf,eAAe,CAACgB,MAAM,EACtBR;QAEFwB,UAAS;QAERnB,yBACC,oBAACoB;QACCC,SAAS,SAACd;YACRA,MAAMI;YACNlB;QACF;QACAE,SAAS;sBAGb,oBAACyB;QACCzB,SAAS;QACT2B,KAAKlB;QACLS,gBAAgBX,UAAUW,iBAAiBU;OAE1CvB,yBAAW,oBAACoB;QAAIzB,SAAS;OAA0CH;AAI5E,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeaderContext/PanelHeaderContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { SizeType } from '../../lib/adaptivity';\nimport { useDOM } from '../../lib/dom';\nimport { Platform } from '../../lib/platform';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { FixedLayout } from '../FixedLayout/FixedLayout';\nimport styles from './PanelHeaderContext.module.css';\n\nconst sizeXClassNames = {\n none: styles['PanelHeaderContext--sizeX-none'],\n [SizeType.COMPACT]: styles['PanelHeaderContext--sizeX-compact'],\n [SizeType.REGULAR]: styles['PanelHeaderContext--sizeX-regular'],\n};\n\nexport interface PanelHeaderContextProps extends React.HTMLAttributes<HTMLDivElement> {\n opened: boolean;\n onClose: VoidFunction;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderContext\n */\nexport const PanelHeaderContext = ({\n children,\n onClose,\n opened = false,\n className,\n ...restProps\n}: PanelHeaderContextProps) => {\n const { document } = useDOM();\n const platform = usePlatform();\n const [visible, setVisible] = React.useState(opened);\n const closing = visible && !opened;\n const { sizeX = 'none' } = useAdaptivity();\n const elementRef = React.useRef<HTMLDivElement>(null);\n\n useIsomorphicLayoutEffect(() => {\n opened && setVisible(true);\n }, [opened]);\n\n useScrollLock(platform !== Platform.VKCOM && opened);\n\n // start closing on outer click\n useGlobalEventListener(\n document,\n 'click',\n opened &&\n !closing &&\n ((event) => {\n if (elementRef.current && !elementRef.current.contains(event.target as Node)) {\n event.stopPropagation();\n onClose();\n }\n }),\n { capture: true },\n );\n\n // fallback onAnimationEnd when animationend not supported\n const onAnimationEnd = () => setVisible(false);\n const animationFallback = useTimeout(onAnimationEnd, 200);\n React.useEffect(\n () => (closing ? animationFallback.set() : animationFallback.clear()),\n [animationFallback, closing],\n );\n\n return (\n <FixedLayout\n {...restProps}\n className={classNames(\n styles['PanelHeaderContext'],\n platform === Platform.IOS && styles['PanelHeaderContext--ios'],\n opened && styles['PanelHeaderContext--opened'],\n closing && styles['PanelHeaderContext--closing'],\n sizeXClassNames[sizeX],\n className,\n )}\n vertical=\"top\"\n >\n {visible && (\n <div\n onClick={(event) => {\n event.stopPropagation();\n onClose();\n }}\n className={styles['PanelHeaderContext__fade']}\n />\n )}\n <div\n className={styles['PanelHeaderContext__in']}\n ref={elementRef}\n onAnimationEnd={closing ? onAnimationEnd : undefined}\n >\n {visible && <div className={styles['PanelHeaderContext__content']}>{children}</div>}\n </div>\n </FixedLayout>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useGlobalEventListener","usePlatform","useTimeout","SizeType","useDOM","Platform","useIsomorphicLayoutEffect","useScrollLock","FixedLayout","sizeXClassNames","none","COMPACT","REGULAR","PanelHeaderContext","children","onClose","opened","className","restProps","document","platform","useState","visible","setVisible","closing","sizeX","elementRef","useRef","VKCOM","event","current","contains","target","stopPropagation","capture","onAnimationEnd","animationFallback","useEffect","set","clear","IOS","vertical","div","onClick","ref","undefined"],"mappings":";;;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,sBAAsB,QAAQ,qCAAqC;AAC5E,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,yBAAyB,QAAQ,sCAAsC;AAChF,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,WAAW,QAAQ,6BAA6B;IAGjC;AAAxB,IAAMC,mBAAkB;IACtBC,IAAI;oBADkB,MAErBP,SAASQ,OAAO,6DAFK,MAGrBR,SAASS,OAAO,4CAHK;AAWxB;;CAEC,GACD,OAAO,IAAMC,qBAAqB;QAChCC,kBAAAA,UACAC,iBAAAA,gCACAC,QAAAA,oCAAS,uBACTC,mBAAAA,WACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAM,AAAEE,WAAaf,SAAbe;IACR,IAAMC,WAAWnB;IACjB,IAA8BJ,mCAAAA,MAAMwB,QAAQ,CAACL,aAAtCM,UAAuBzB,oBAAd0B,aAAc1B;IAC9B,IAAM2B,UAAUF,WAAW,CAACN;IAC5B,IAA2BjB,iBAAAA,wCAAAA,eAAnB0B,OAAAA,0CAAQ;IAChB,IAAMC,aAAa7B,MAAM8B,MAAM,CAAiB;IAEhDrB,0BAA0B;QACxBU,UAAUO,WAAW;IACvB,GAAG;QAACP;KAAO;IAEXT,cAAca,aAAaf,SAASuB,KAAK,IAAIZ;IAE7C,+BAA+B;IAC/BhB,uBACEmB,UACA,SACAH,UACE,CAACQ,WACA,SAACK;QACA,IAAIH,WAAWI,OAAO,IAAI,CAACJ,WAAWI,OAAO,CAACC,QAAQ,CAACF,MAAMG,MAAM,GAAW;YAC5EH,MAAMI,eAAe;YACrBlB;QACF;IACF,GACF;QAAEmB,SAAS;IAAK;IAGlB,0DAA0D;IAC1D,IAAMC,iBAAiB;eAAMZ,WAAW;;IACxC,IAAMa,oBAAoBlC,WAAWiC,gBAAgB;IACrDtC,MAAMwC,SAAS,CACb;eAAOb,UAAUY,kBAAkBE,GAAG,KAAKF,kBAAkBG,KAAK;OAClE;QAACH;QAAmBZ;KAAQ;IAG9B,qBACE,oBAAChB,qDACKU;QACJD,WAAWnB,qCAETsB,aAAaf,SAASmC,GAAG,mCACzBxB,4CACAQ,8CACAf,eAAe,CAACgB,MAAM,EACtBR;QAEFwB,UAAS;QAERnB,yBACC,oBAACoB;QACCC,SAAS,SAACd;YACRA,MAAMI,eAAe;YACrBlB;QACF;QACAE,SAAS;sBAGb,oBAACyB;QACCzB,SAAS;QACT2B,KAAKlB;QACLS,gBAAgBX,UAAUW,iBAAiBU;OAE1CvB,yBAAW,oBAACoB;QAAIzB,SAAS;OAA0CH;AAI5E,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeaderEdit/PanelHeaderEdit.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon28DoneOutline, Icon28EditOutline } from '@vkontakte/icons';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { PanelHeaderButton, PanelHeaderButtonProps } from '../PanelHeaderButton/PanelHeaderButton';\n\nexport interface PanelHeaderEditProps extends PanelHeaderButtonProps {\n /**\n * Включен ли режим редактирования\n */\n isActive?: boolean;\n /**\n * iOS only. Текст кнопки, когда режим редактирования не активен\n */\n editLabel?: string;\n /**\n * iOS only. Текст кнопки при активном режиме редактирования для выхода из него\n */\n doneLabel?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderEdit\n */\nexport const PanelHeaderEdit = ({\n isActive = false,\n editLabel = 'Редактировать',\n doneLabel = 'Готово',\n ...restProps\n}: PanelHeaderEditProps) => {\n const iOSText = isActive ? doneLabel : editLabel;\n const AndroidIcon = isActive ? Icon28DoneOutline : Icon28EditOutline;\n const platform = usePlatform();\n\n return (\n <PanelHeaderButton aria-label={iOSText} {...restProps}>\n {platform === Platform.IOS ? iOSText : <AndroidIcon />}\n </PanelHeaderButton>\n );\n};\n"],"names":["React","Icon28DoneOutline","Icon28EditOutline","usePlatform","Platform","PanelHeaderButton","PanelHeaderEdit","isActive","editLabel","doneLabel","restProps","iOSText","AndroidIcon","platform","aria-label","IOS"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,iBAAiB,EAAEC,iBAAiB,QAAQ,mBAAmB;AACxE,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,iBAAiB,QAAgC,yCAAyC;AAiBnG;;CAEC,GACD,OAAO,IAAMC,kBAAkB;iCAC7BC,UAAAA,wCAAW,mDACXC,WAAAA,0CAAY,8DACZC,WAAAA,0CAAY,6BACTC;QAHHH;QACAC;QACAC;;IAGA,IAAME,UAAUJ,WAAWE,YAAYD;IACvC,IAAMI,cAAcL,WAAWN,oBAAoBC;IACnD,IAAMW,WAAWV;IAEjB,qBACE,oBAACE;QAAkBS,cAAYH;OAAaD,YACzCG,aAAaT,SAASW,MAAMJ,wBAAU,oBAACC;AAG9C,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeaderEdit/PanelHeaderEdit.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon28DoneOutline, Icon28EditOutline } from '@vkontakte/icons';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { PanelHeaderButton, PanelHeaderButtonProps } from '../PanelHeaderButton/PanelHeaderButton';\n\nexport interface PanelHeaderEditProps extends PanelHeaderButtonProps {\n /**\n * Включен ли режим редактирования\n */\n isActive?: boolean;\n /**\n * iOS only. Текст кнопки, когда режим редактирования не активен\n */\n editLabel?: string;\n /**\n * iOS only. Текст кнопки при активном режиме редактирования для выхода из него\n */\n doneLabel?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderEdit\n */\nexport const PanelHeaderEdit = ({\n isActive = false,\n editLabel = 'Редактировать',\n doneLabel = 'Готово',\n ...restProps\n}: PanelHeaderEditProps) => {\n const iOSText = isActive ? doneLabel : editLabel;\n const AndroidIcon = isActive ? Icon28DoneOutline : Icon28EditOutline;\n const platform = usePlatform();\n\n return (\n <PanelHeaderButton aria-label={iOSText} {...restProps}>\n {platform === Platform.IOS ? iOSText : <AndroidIcon />}\n </PanelHeaderButton>\n );\n};\n"],"names":["React","Icon28DoneOutline","Icon28EditOutline","usePlatform","Platform","PanelHeaderButton","PanelHeaderEdit","isActive","editLabel","doneLabel","restProps","iOSText","AndroidIcon","platform","aria-label","IOS"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,iBAAiB,EAAEC,iBAAiB,QAAQ,mBAAmB;AACxE,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,iBAAiB,QAAgC,yCAAyC;AAiBnG;;CAEC,GACD,OAAO,IAAMC,kBAAkB;iCAC7BC,UAAAA,wCAAW,mDACXC,WAAAA,0CAAY,8DACZC,WAAAA,0CAAY,6BACTC;QAHHH;QACAC;QACAC;;IAGA,IAAME,UAAUJ,WAAWE,YAAYD;IACvC,IAAMI,cAAcL,WAAWN,oBAAoBC;IACnD,IAAMW,WAAWV;IAEjB,qBACE,oBAACE;QAAkBS,cAAYH;OAAaD,YACzCG,aAAaT,SAASW,GAAG,GAAGJ,wBAAU,oBAACC;AAG9C,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon28DoneOutline } from '@vkontakte/icons';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { getTitleFromChildren } from '../../lib/utils';\nimport { PanelHeaderButton, PanelHeaderButtonProps } from '../PanelHeaderButton/PanelHeaderButton';\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderSubmit\n */\nexport const PanelHeaderSubmit = ({\n children = 'Готово',\n ...restProps\n}: PanelHeaderButtonProps) => {\n const platform = usePlatform();\n\n return (\n <PanelHeaderButton aria-label={getTitleFromChildren(children)} primary {...restProps}>\n {platform === Platform.IOS ? children : <Icon28DoneOutline />}\n </PanelHeaderButton>\n );\n};\n"],"names":["React","Icon28DoneOutline","usePlatform","Platform","getTitleFromChildren","PanelHeaderButton","PanelHeaderSubmit","children","restProps","platform","aria-label","primary","IOS"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ,mBAAmB;AACrD,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,oBAAoB,QAAQ,kBAAkB;AACvD,SAASC,iBAAiB,QAAgC,yCAAyC;AAEnG;;CAEC,GACD,OAAO,IAAMC,oBAAoB;iCAC/BC,UAAAA,wCAAW,4BACRC;QADHD;;IAGA,IAAME,WAAWP;IAEjB,qBACE,oBAACG;QAAkBK,cAAYN,qBAAqBG;QAAWI,SAAAA;OAAYH,YACxEC,aAAaN,SAASS,MAAML,yBAAW,oBAACN;AAG/C,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon28DoneOutline } from '@vkontakte/icons';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { getTitleFromChildren } from '../../lib/utils';\nimport { PanelHeaderButton, PanelHeaderButtonProps } from '../PanelHeaderButton/PanelHeaderButton';\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderSubmit\n */\nexport const PanelHeaderSubmit = ({\n children = 'Готово',\n ...restProps\n}: PanelHeaderButtonProps) => {\n const platform = usePlatform();\n\n return (\n <PanelHeaderButton aria-label={getTitleFromChildren(children)} primary {...restProps}>\n {platform === Platform.IOS ? children : <Icon28DoneOutline />}\n </PanelHeaderButton>\n );\n};\n"],"names":["React","Icon28DoneOutline","usePlatform","Platform","getTitleFromChildren","PanelHeaderButton","PanelHeaderSubmit","children","restProps","platform","aria-label","primary","IOS"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ,mBAAmB;AACrD,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,oBAAoB,QAAQ,kBAAkB;AACvD,SAASC,iBAAiB,QAAgC,yCAAyC;AAEnG;;CAEC,GACD,OAAO,IAAMC,oBAAoB;iCAC/BC,UAAAA,wCAAW,4BACRC;QADHD;;IAGA,IAAME,WAAWP;IAEjB,qBACE,oBAACG;QAAkBK,cAAYN,qBAAqBG;QAAWI,SAAAA;OAAYH,YACxEC,aAAaN,SAASS,GAAG,GAAGL,yBAAW,oBAACN;AAG/C,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelSpinner/PanelSpinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Spinner, SpinnerProps } from '../Spinner/Spinner';\n\nexport interface PanelSpinnerProps extends SpinnerProps {\n height?: number;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelSpinner\n */\nexport const PanelSpinner = React.memo(\n ({ height = 96, style, ...restProps }: PanelSpinnerProps) => (\n <Spinner size=\"regular\" {...restProps} style={{ height, ...style }} />\n ),\n);\n\nPanelSpinner.displayName = 'PanelSpinner';\n"],"names":["React","Spinner","PanelSpinner","memo","height","style","restProps","size","displayName"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,OAAO,QAAsB,qBAAqB;AAM3D;;CAEC,GACD,OAAO,IAAMC,6BAAeF,MAAMG,KAChC;+BAAGC,QAAAA,oCAAS,oBAAIC,eAAAA,OAAUC;QAAvBF;QAAaC;;WACd,oBAACJ;QAAQM,MAAK;OAAcD;QAAWD,OAAO;YAAED,QAAAA;WAAWC;;AAAU,GAEvE;AAEFH,aAAaM,cAAc"}
1
+ {"version":3,"sources":["../../../src/components/PanelSpinner/PanelSpinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Spinner, SpinnerProps } from '../Spinner/Spinner';\n\nexport interface PanelSpinnerProps extends SpinnerProps {\n height?: number;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelSpinner\n */\nexport const PanelSpinner = React.memo(\n ({ height = 96, style, ...restProps }: PanelSpinnerProps) => (\n <Spinner size=\"regular\" {...restProps} style={{ height, ...style }} />\n ),\n);\n\nPanelSpinner.displayName = 'PanelSpinner';\n"],"names":["React","Spinner","PanelSpinner","memo","height","style","restProps","size","displayName"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,OAAO,QAAsB,qBAAqB;AAM3D;;CAEC,GACD,OAAO,IAAMC,6BAAeF,MAAMG,IAAI,CACpC;+BAAGC,QAAAA,oCAAS,oBAAIC,eAAAA,OAAUC;QAAvBF;QAAaC;;WACd,oBAACJ;QAAQM,MAAK;OAAcD;QAAWD,OAAO;YAAED,QAAAA;WAAWC;;AAAU,GAEvE;AAEFH,aAAaM,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PopoutRoot/PopoutRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { blurActiveElement, useDOM } from '../../lib/dom';\nimport { HasRootRef } from '../../types';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport styles from './PopoutRoot.module.css';\n\ninterface PopoutRootPopoutProps {\n children: React.ReactNode;\n}\n\nconst PopoutRootPopout = ({ children }: PopoutRootPopoutProps) => {\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n return (\n <div\n className={classNames(\n styles['PopoutRoot__popout'],\n isDesktop && styles['PopoutRoot__popout--absolute'],\n )}\n >\n {children}\n </div>\n );\n};\n\ninterface PopoutRootModalProps {\n children: React.ReactNode;\n}\n\nconst PopoutRootModal = ({ children }: PopoutRootModalProps) => {\n return <div className={styles['PopoutRoot__modal']}>{children}</div>;\n};\n\nexport interface PopoutRootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n popout?: React.ReactNode;\n modal?: React.ReactNode;\n}\n\nexport const PopoutRoot = ({\n popout,\n modal,\n children,\n getRootRef,\n className,\n ...restProps\n}: PopoutRootProps) => {\n const { document } = useDOM();\n\n React.useEffect(() => {\n popout && blurActiveElement(document);\n }, [document, popout]);\n\n return (\n <div {...restProps} className={classNames(styles['PopoutRoot'], className)} ref={getRootRef}>\n {children}\n <AppRootPortal>\n {!!popout && <PopoutRootPopout>{popout}</PopoutRootPopout>}\n {!!modal && <PopoutRootModal>{modal}</PopoutRootModal>}\n </AppRootPortal>\n </div>\n );\n};\n"],"names":["React","classNames","useAdaptivityWithJSMediaQueries","blurActiveElement","useDOM","AppRootPortal","PopoutRootPopout","children","isDesktop","div","className","PopoutRootModal","PopoutRoot","popout","modal","getRootRef","restProps","document","useEffect","ref"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,+BAA+B,QAAQ,8CAA8C;AAC9F,SAASC,iBAAiB,EAAEC,MAAM,QAAQ,gBAAgB;AAE1D,SAASC,aAAa,QAAQ,2BAA2B;AAOzD,IAAMC,mBAAmB;QAAGC,iBAAAA;IAC1B,IAAM,AAAEC,YAAcN,kCAAdM;IAER,qBACE,oBAACC;QACCC,WAAWT,qCAETO;OAGDD;AAGP;AAMA,IAAMI,kBAAkB;QAAGJ,iBAAAA;IACzB,qBAAO,oBAACE;QAAIC,SAAS;OAAgCH;AACvD;AASA,OAAO,IAAMK,aAAa;QACxBC,gBAAAA,QACAC,eAAAA,OACAP,kBAAAA,UACAQ,oBAAAA,YACAL,mBAAAA,WACGM;QALHH;QACAC;QACAP;QACAQ;QACAL;;IAGA,IAAM,AAAEO,WAAab,SAAba;IAERjB,MAAMkB,UAAU;QACdL,UAAUV,kBAAkBc;IAC9B,GAAG;QAACA;QAAUJ;KAAO;IAErB,qBACE,oBAACJ,+CAAQO;QAAWN,WAAWT,6BAAiCS;QAAYS,KAAKJ;QAC9ER,wBACD,oBAACF,qBACE,CAAC,CAACQ,wBAAU,oBAACP,wBAAkBO,SAC/B,CAAC,CAACC,uBAAS,oBAACH,uBAAiBG;AAItC,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/PopoutRoot/PopoutRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { blurActiveElement, useDOM } from '../../lib/dom';\nimport { HasRootRef } from '../../types';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport styles from './PopoutRoot.module.css';\n\ninterface PopoutRootPopoutProps {\n children: React.ReactNode;\n}\n\nconst PopoutRootPopout = ({ children }: PopoutRootPopoutProps) => {\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n return (\n <div\n className={classNames(\n styles['PopoutRoot__popout'],\n isDesktop && styles['PopoutRoot__popout--absolute'],\n )}\n >\n {children}\n </div>\n );\n};\n\ninterface PopoutRootModalProps {\n children: React.ReactNode;\n}\n\nconst PopoutRootModal = ({ children }: PopoutRootModalProps) => {\n return <div className={styles['PopoutRoot__modal']}>{children}</div>;\n};\n\nexport interface PopoutRootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n popout?: React.ReactNode;\n modal?: React.ReactNode;\n}\n\nexport const PopoutRoot = ({\n popout,\n modal,\n children,\n getRootRef,\n className,\n ...restProps\n}: PopoutRootProps) => {\n const { document } = useDOM();\n\n React.useEffect(() => {\n popout && blurActiveElement(document);\n }, [document, popout]);\n\n return (\n <div {...restProps} className={classNames(styles['PopoutRoot'], className)} ref={getRootRef}>\n {children}\n <AppRootPortal>\n {!!popout && <PopoutRootPopout>{popout}</PopoutRootPopout>}\n {!!modal && <PopoutRootModal>{modal}</PopoutRootModal>}\n </AppRootPortal>\n </div>\n );\n};\n"],"names":["React","classNames","useAdaptivityWithJSMediaQueries","blurActiveElement","useDOM","AppRootPortal","PopoutRootPopout","children","isDesktop","div","className","PopoutRootModal","PopoutRoot","popout","modal","getRootRef","restProps","document","useEffect","ref"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,+BAA+B,QAAQ,8CAA8C;AAC9F,SAASC,iBAAiB,EAAEC,MAAM,QAAQ,gBAAgB;AAE1D,SAASC,aAAa,QAAQ,2BAA2B;AAOzD,IAAMC,mBAAmB;QAAGC,iBAAAA;IAC1B,IAAM,AAAEC,YAAcN,kCAAdM;IAER,qBACE,oBAACC;QACCC,WAAWT,qCAETO;OAGDD;AAGP;AAMA,IAAMI,kBAAkB;QAAGJ,iBAAAA;IACzB,qBAAO,oBAACE;QAAIC,SAAS;OAAgCH;AACvD;AASA,OAAO,IAAMK,aAAa;QACxBC,gBAAAA,QACAC,eAAAA,OACAP,kBAAAA,UACAQ,oBAAAA,YACAL,mBAAAA,WACGM;QALHH;QACAC;QACAP;QACAQ;QACAL;;IAGA,IAAM,AAAEO,WAAab,SAAba;IAERjB,MAAMkB,SAAS,CAAC;QACdL,UAAUV,kBAAkBc;IAC9B,GAAG;QAACA;QAAUJ;KAAO;IAErB,qBACE,oBAACJ,+CAAQO;QAAWN,WAAWT,6BAAiCS;QAAYS,KAAKJ;QAC9ER,wBACD,oBAACF,qBACE,CAAC,CAACQ,wBAAU,oBAACP,wBAAkBO,SAC/B,CAAC,CAACC,uBAAS,oBAACH,uBAAiBG;AAItC,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PopoutWrapper/PopoutWrapper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useDOM } from '../../lib/dom';\nimport { Platform } from '../../lib/platform';\nimport styles from './PopoutWrapper.module.css';\n\nexport interface PopoutWrapperProps extends React.HTMLAttributes<HTMLDivElement> {\n hasMask?: boolean;\n fixed?: boolean;\n alignY?: 'top' | 'center' | 'bottom';\n alignX?: 'left' | 'center' | 'right';\n closing?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PopoutWrapper\n */\nexport const PopoutWrapper = ({\n alignY = 'center',\n alignX = 'center',\n closing = false,\n hasMask = true,\n fixed = true,\n children,\n onClick,\n className,\n ...restProps\n}: PopoutWrapperProps) => {\n const platform = usePlatform();\n const [opened, setOpened] = React.useState(!hasMask);\n const elRef = React.useRef<HTMLDivElement>(null);\n\n const onFadeInEnd = (e?: React.AnimationEvent) => {\n if (!e || e.animationName === styles['vkui-animation-full-fade-in']) {\n setOpened(true);\n }\n };\n const animationFinishFallback = useTimeout(onFadeInEnd, platform === Platform.IOS ? 300 : 200);\n React.useEffect(() => {\n !opened && animationFinishFallback.set();\n }, [animationFinishFallback, opened]);\n\n const { window } = useDOM();\n useGlobalEventListener(window, 'touchmove', (e) => e.preventDefault(), {\n passive: false,\n });\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['PopoutWrapper'],\n {\n center: styles['PopoutWrapper--alignY-center'],\n top: styles['PopoutWrapper--alignY-top'],\n bottom: styles['PopoutWrapper--alignY-bottom'],\n }[alignY],\n {\n center: styles['PopoutWrapper--alignX-center'],\n left: styles['PopoutWrapper--alignX-left'],\n right: styles['PopoutWrapper--alignX-right'],\n }[alignX],\n closing && styles['PopoutWrapper--closing'],\n opened && styles['PopoutWrapper--opened'],\n fixed && styles['PopoutWrapper--fixed'],\n hasMask && styles['PopoutWrapper--masked'],\n className,\n )}\n onAnimationEnd={opened ? undefined : onFadeInEnd}\n ref={elRef}\n >\n <div className={styles['PopoutWrapper__container']}>\n <div className={styles['PopoutWrapper__overlay']} onClick={onClick} />\n <div className={styles['PopoutWrapper__content']}>{children}</div>\n </div>\n </div>\n );\n};\n"],"names":["React","classNames","useGlobalEventListener","usePlatform","useTimeout","useDOM","Platform","PopoutWrapper","alignY","alignX","closing","hasMask","fixed","children","onClick","className","restProps","platform","useState","opened","setOpened","elRef","useRef","onFadeInEnd","e","animationName","animationFinishFallback","IOS","useEffect","set","window","preventDefault","passive","div","center","top","bottom","left","right","onAnimationEnd","undefined","ref"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,sBAAsB,QAAQ,qCAAqC;AAC5E,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,QAAQ,QAAQ,qBAAqB;AAW9C;;CAEC,GACD,OAAO,IAAMC,gBAAgB;+BAC3BC,QAAAA,oCAAS,iDACTC,QAAAA,oCAAS,kDACTC,SAAAA,sCAAU,gDACVC,SAAAA,sCAAU,6CACVC,OAAAA,kCAAQ,qBACRC,kBAAAA,UACAC,iBAAAA,SACAC,mBAAAA,WACGC;QARHR;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWd;IACjB,IAA4BH,mCAAAA,MAAMkB,SAAS,CAACP,cAArCQ,SAAqBnB,oBAAboB,YAAapB;IAC5B,IAAMqB,QAAQrB,MAAMsB,OAAuB;IAE3C,IAAMC,cAAc,SAACC;QACnB,IAAI,CAACA,KAAKA,EAAEC,iDAAyD;YACnEL,UAAU;QACZ;IACF;IACA,IAAMM,0BAA0BtB,WAAWmB,aAAaN,aAAaX,SAASqB,MAAM,MAAM;IAC1F3B,MAAM4B,UAAU;QACd,CAACT,UAAUO,wBAAwBG;IACrC,GAAG;QAACH;QAAyBP;KAAO;IAEpC,IAAM,AAAEW,SAAWzB,SAAXyB;IACR5B,uBAAuB4B,QAAQ,aAAa,SAACN;eAAMA,EAAEO;OAAkB;QACrEC,SAAS;IACX;IAEA,qBACE,oBAACC,+CACKjB;QACJD,WAAWd,gCAET;YACEiC,MAAM;YACNC,GAAG;YACHC,MAAM;QACR,CAAC,CAAC5B,OAAO,EACT;YACE0B,MAAM;YACNG,IAAI;YACJC,KAAK;QACP,CAAC,CAAC7B,OAAO,EACTC,yCACAS,uCACAP,qCACAD,wCACAI;QAEFwB,gBAAgBpB,SAASqB,YAAYjB;QACrCkB,KAAKpB;sBAEL,oBAACY;QAAIlB,SAAS;qBACZ,oBAACkB;QAAIlB,SAAS;QAAoCD,SAASA;sBAC3D,oBAACmB;QAAIlB,SAAS;OAAqCF;AAI3D,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/PopoutWrapper/PopoutWrapper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useDOM } from '../../lib/dom';\nimport { Platform } from '../../lib/platform';\nimport styles from './PopoutWrapper.module.css';\n\nexport interface PopoutWrapperProps extends React.HTMLAttributes<HTMLDivElement> {\n hasMask?: boolean;\n fixed?: boolean;\n alignY?: 'top' | 'center' | 'bottom';\n alignX?: 'left' | 'center' | 'right';\n closing?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PopoutWrapper\n */\nexport const PopoutWrapper = ({\n alignY = 'center',\n alignX = 'center',\n closing = false,\n hasMask = true,\n fixed = true,\n children,\n onClick,\n className,\n ...restProps\n}: PopoutWrapperProps) => {\n const platform = usePlatform();\n const [opened, setOpened] = React.useState(!hasMask);\n const elRef = React.useRef<HTMLDivElement>(null);\n\n const onFadeInEnd = (e?: React.AnimationEvent) => {\n if (!e || e.animationName === styles['vkui-animation-full-fade-in']) {\n setOpened(true);\n }\n };\n const animationFinishFallback = useTimeout(onFadeInEnd, platform === Platform.IOS ? 300 : 200);\n React.useEffect(() => {\n !opened && animationFinishFallback.set();\n }, [animationFinishFallback, opened]);\n\n const { window } = useDOM();\n useGlobalEventListener(window, 'touchmove', (e) => e.preventDefault(), {\n passive: false,\n });\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['PopoutWrapper'],\n {\n center: styles['PopoutWrapper--alignY-center'],\n top: styles['PopoutWrapper--alignY-top'],\n bottom: styles['PopoutWrapper--alignY-bottom'],\n }[alignY],\n {\n center: styles['PopoutWrapper--alignX-center'],\n left: styles['PopoutWrapper--alignX-left'],\n right: styles['PopoutWrapper--alignX-right'],\n }[alignX],\n closing && styles['PopoutWrapper--closing'],\n opened && styles['PopoutWrapper--opened'],\n fixed && styles['PopoutWrapper--fixed'],\n hasMask && styles['PopoutWrapper--masked'],\n className,\n )}\n onAnimationEnd={opened ? undefined : onFadeInEnd}\n ref={elRef}\n >\n <div className={styles['PopoutWrapper__container']}>\n <div className={styles['PopoutWrapper__overlay']} onClick={onClick} />\n <div className={styles['PopoutWrapper__content']}>{children}</div>\n </div>\n </div>\n );\n};\n"],"names":["React","classNames","useGlobalEventListener","usePlatform","useTimeout","useDOM","Platform","PopoutWrapper","alignY","alignX","closing","hasMask","fixed","children","onClick","className","restProps","platform","useState","opened","setOpened","elRef","useRef","onFadeInEnd","e","animationName","animationFinishFallback","IOS","useEffect","set","window","preventDefault","passive","div","center","top","bottom","left","right","onAnimationEnd","undefined","ref"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,sBAAsB,QAAQ,qCAAqC;AAC5E,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,QAAQ,QAAQ,qBAAqB;AAW9C;;CAEC,GACD,OAAO,IAAMC,gBAAgB;+BAC3BC,QAAAA,oCAAS,iDACTC,QAAAA,oCAAS,kDACTC,SAAAA,sCAAU,gDACVC,SAAAA,sCAAU,6CACVC,OAAAA,kCAAQ,qBACRC,kBAAAA,UACAC,iBAAAA,SACAC,mBAAAA,WACGC;QARHR;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWd;IACjB,IAA4BH,mCAAAA,MAAMkB,QAAQ,CAAC,CAACP,cAArCQ,SAAqBnB,oBAAboB,YAAapB;IAC5B,IAAMqB,QAAQrB,MAAMsB,MAAM,CAAiB;IAE3C,IAAMC,cAAc,SAACC;QACnB,IAAI,CAACA,KAAKA,EAAEC,aAAa,oCAA4C;YACnEL,UAAU;QACZ;IACF;IACA,IAAMM,0BAA0BtB,WAAWmB,aAAaN,aAAaX,SAASqB,GAAG,GAAG,MAAM;IAC1F3B,MAAM4B,SAAS,CAAC;QACd,CAACT,UAAUO,wBAAwBG,GAAG;IACxC,GAAG;QAACH;QAAyBP;KAAO;IAEpC,IAAM,AAAEW,SAAWzB,SAAXyB;IACR5B,uBAAuB4B,QAAQ,aAAa,SAACN;eAAMA,EAAEO,cAAc;OAAI;QACrEC,SAAS;IACX;IAEA,qBACE,oBAACC,+CACKjB;QACJD,WAAWd,gCAET;YACEiC,MAAM;YACNC,GAAG;YACHC,MAAM;QACR,CAAC,CAAC5B,OAAO,EACT;YACE0B,MAAM;YACNG,IAAI;YACJC,KAAK;QACP,CAAC,CAAC7B,OAAO,EACTC,yCACAS,uCACAP,qCACAD,wCACAI;QAEFwB,gBAAgBpB,SAASqB,YAAYjB;QACrCkB,KAAKpB;sBAEL,oBAACY;QAAIlB,SAAS;qBACZ,oBAACkB;QAAIlB,SAAS;QAAoCD,SAASA;sBAC3D,oBAACmB;QAAIlB,SAAS;OAAqCF;AAI3D,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePatchChildrenRef } from '../../hooks/usePatchChildrenRef';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useDOM } from '../../lib/dom';\nimport { FocusTrap, FocusTrapProps } from '../FocusTrap/FocusTrap';\nimport { Popper, PopperCommonProps } from '../Popper/Popper';\nimport styles from './Popover.module.css';\n\nexport interface PopoverProps\n extends Omit<\n PopperCommonProps,\n 'arrow' | 'arrowClassName' | 'arrowHeight' | 'arrowPadding' | 'ArrowIcon' | 'content'\n >,\n Pick<FocusTrapProps, 'restoreFocus'> {\n /**\n * Механика вызова всплывающего окна.\n *\n * - `\"click\"` – показывается/скрывается только при нажатии.\n * - `\"hover\"` – помимо нажатия, будет показываться/скрывается при наведении/отведении мыши.\n *\n * > ⚠️`\"hover\"` на тач-устройствах будет работать как `\"click\"`, с одним лишь нюансом, что не будет закрываться\n * > при повторном нажатии на целевой элемент. Для закрытия необходимо нажать на область вне целевого элемента\n * > и выпадающего окна.\n */\n action?: 'click' | 'hover';\n /**\n * Если передан, то всплывающее окно будет показано/скрыто в зависимости от значения свойства.\n */\n shown?: boolean;\n /**\n * Количество миллисекунд, после которых произойдёт показ всплывающего окна.\n *\n * > Используется только для `action=\"hover\"` при наведении/отведении мыши.\n */\n showDelay?: number;\n /**\n * Количество миллисекунд, после которых произойдёт скрытие всплывающего окна.\n *\n * > Используется только для `action=\"hover\"` при наведении/отведении мыши.\n */\n hideDelay?: number;\n /**\n * Содержимое всплывающего окна.\n */\n content?: React.ReactNode;\n /**\n * Целевой элемент. Всплывающее окно появится возле него.\n *\n * > ⚠️ Если это пользовательский компонент, то он должен предоставлять параметры либо `getRootRef`, либо `ref` для получения ссылки на DOM-узел.\n */\n children?: React.ReactElement;\n /**\n * Вызывается при каждом изменении видимости всплывающего окна.\n */\n onShownChange?(shown: boolean): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popover\n */\nexport const Popover = ({\n action = 'click',\n shown: shownProp,\n showDelay = 150,\n hideDelay = 150,\n offsetDistance = 8,\n content,\n children,\n style: styleProp,\n className,\n getRef,\n onShownChange,\n restoreFocus = true,\n ...restProps\n}: PopoverProps) => {\n const { document } = useDOM();\n\n const hoverable = action === 'hover';\n const hovered = React.useRef(false);\n const [computedShown, setComputedShown] = React.useState(shownProp || false);\n const [dropdownNode, setPopperNode] = React.useState<HTMLElement | null>(null);\n\n const shown = typeof shownProp === 'boolean' ? shownProp : computedShown;\n\n const patchedPopperRef = useExternRef<HTMLDivElement>(setPopperNode, getRef);\n\n const [childRef, child] = usePatchChildrenRef(children);\n\n const setShown = (value: boolean) => {\n if (typeof shownProp !== 'boolean') {\n setComputedShown(value);\n }\n typeof onShownChange === 'function' && onShownChange(value);\n };\n\n const showTimeout = useTimeout(() => setShown(true), showDelay);\n\n const hideTimeout = useTimeout(() => setShown(false), hideDelay);\n\n const handleTargetEnter = () => {\n hovered.current = true;\n hideTimeout.clear();\n showTimeout.set();\n };\n\n const handleTargetClick = () => {\n if (hovered.current && shown) {\n return;\n }\n setShown(!shown);\n };\n\n const handleTargetLeave = () => {\n hovered.current = false;\n showTimeout.clear();\n hideTimeout.set();\n };\n\n const handleContentKeyDownEscape = () => {\n setShown(false);\n };\n\n const handleOutsideClick = (e: MouseEvent) => {\n if (\n dropdownNode &&\n !childRef.current?.contains(e.target as Node) &&\n !dropdownNode.contains(e.target as Node)\n ) {\n setShown(false);\n }\n };\n\n useGlobalEventListener(document, 'click', handleOutsideClick, {\n capture: true,\n passive: true,\n });\n const targetEnterListener = useEventListener('mouseenter', handleTargetEnter);\n const targetClickEvent = useEventListener('click', handleTargetClick);\n const targetLeaveListener = useEventListener('mouseleave', handleTargetLeave);\n\n React.useEffect(() => {\n if (!childRef.current) {\n return;\n }\n\n targetClickEvent.add(childRef.current);\n }, [childRef, targetClickEvent]);\n\n React.useEffect(() => {\n if (!childRef.current) {\n return;\n }\n\n if (hoverable) {\n targetEnterListener.add(childRef.current);\n targetLeaveListener.add(childRef.current);\n }\n\n return () => {\n targetEnterListener.remove();\n targetLeaveListener.remove();\n };\n }, [childRef, hoverable, targetEnterListener, targetLeaveListener]);\n\n return (\n <React.Fragment>\n {child}\n {shown && (\n <Popper\n {...restProps}\n className={classNames(styles['Popover'], className)}\n targetRef={childRef}\n getRef={patchedPopperRef}\n offsetDistance={offsetDistance}\n style={\n // Reason: Typescript ругается на CSS Custom Properties в объекте\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n {\n ...styleProp,\n '--vkui_internal--popover_safe_zone_padding': `${offsetDistance}px`,\n } as React.CSSProperties\n }\n renderContent={({ className: wrapperClassName }) => (\n <FocusTrap\n className={wrapperClassName}\n onClose={handleContentKeyDownEscape}\n restoreFocus={restoreFocus}\n >\n {content}\n </FocusTrap>\n )}\n onMouseOver={hoverable ? hideTimeout.clear : undefined}\n onMouseOut={hoverable ? handleTargetLeave : undefined}\n />\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","classNames","useEventListener","useExternRef","useGlobalEventListener","usePatchChildrenRef","useTimeout","useDOM","FocusTrap","Popper","Popover","action","shown","shownProp","showDelay","hideDelay","offsetDistance","content","children","style","styleProp","className","getRef","onShownChange","restoreFocus","restProps","document","hoverable","hovered","useRef","useState","computedShown","setComputedShown","dropdownNode","setPopperNode","patchedPopperRef","childRef","child","setShown","value","showTimeout","hideTimeout","handleTargetEnter","current","clear","set","handleTargetClick","handleTargetLeave","handleContentKeyDownEscape","handleOutsideClick","e","contains","target","capture","passive","targetEnterListener","targetClickEvent","targetLeaveListener","useEffect","add","remove","Fragment","targetRef","renderContent","wrapperClassName","onClose","onMouseOver","undefined","onMouseOut"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePatchChildrenRef } from '../../hooks/usePatchChildrenRef';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useDOM } from '../../lib/dom';\nimport { FocusTrap, FocusTrapProps } from '../FocusTrap/FocusTrap';\nimport { Popper, PopperCommonProps } from '../Popper/Popper';\nimport styles from './Popover.module.css';\n\nexport interface PopoverProps\n extends Omit<\n PopperCommonProps,\n 'arrow' | 'arrowClassName' | 'arrowHeight' | 'arrowPadding' | 'ArrowIcon' | 'content'\n >,\n Pick<FocusTrapProps, 'restoreFocus'> {\n /**\n * Механика вызова всплывающего окна.\n *\n * - `\"click\"` – показывается/скрывается только при нажатии.\n * - `\"hover\"` – помимо нажатия, будет показываться/скрывается при наведении/отведении мыши.\n *\n * > ⚠️`\"hover\"` на тач-устройствах будет работать как `\"click\"`, с одним лишь нюансом, что не будет закрываться\n * > при повторном нажатии на целевой элемент. Для закрытия необходимо нажать на область вне целевого элемента\n * > и выпадающего окна.\n */\n action?: 'click' | 'hover';\n /**\n * Если передан, то всплывающее окно будет показано/скрыто в зависимости от значения свойства.\n */\n shown?: boolean;\n /**\n * Количество миллисекунд, после которых произойдёт показ всплывающего окна.\n *\n * > Используется только для `action=\"hover\"` при наведении/отведении мыши.\n */\n showDelay?: number;\n /**\n * Количество миллисекунд, после которых произойдёт скрытие всплывающего окна.\n *\n * > Используется только для `action=\"hover\"` при наведении/отведении мыши.\n */\n hideDelay?: number;\n /**\n * Содержимое всплывающего окна.\n */\n content?: React.ReactNode;\n /**\n * Целевой элемент. Всплывающее окно появится возле него.\n *\n * > ⚠️ Если это пользовательский компонент, то он должен предоставлять параметры либо `getRootRef`, либо `ref` для получения ссылки на DOM-узел.\n */\n children?: React.ReactElement;\n /**\n * Вызывается при каждом изменении видимости всплывающего окна.\n */\n onShownChange?(shown: boolean): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popover\n */\nexport const Popover = ({\n action = 'click',\n shown: shownProp,\n showDelay = 150,\n hideDelay = 150,\n offsetDistance = 8,\n content,\n children,\n style: styleProp,\n className,\n getRef,\n onShownChange,\n restoreFocus = true,\n ...restProps\n}: PopoverProps) => {\n const { document } = useDOM();\n\n const hoverable = action === 'hover';\n const hovered = React.useRef(false);\n const [computedShown, setComputedShown] = React.useState(shownProp || false);\n const [dropdownNode, setPopperNode] = React.useState<HTMLElement | null>(null);\n\n const shown = typeof shownProp === 'boolean' ? shownProp : computedShown;\n\n const patchedPopperRef = useExternRef<HTMLDivElement>(setPopperNode, getRef);\n\n const [childRef, child] = usePatchChildrenRef(children);\n\n const setShown = (value: boolean) => {\n if (typeof shownProp !== 'boolean') {\n setComputedShown(value);\n }\n typeof onShownChange === 'function' && onShownChange(value);\n };\n\n const showTimeout = useTimeout(() => setShown(true), showDelay);\n\n const hideTimeout = useTimeout(() => setShown(false), hideDelay);\n\n const handleTargetEnter = () => {\n hovered.current = true;\n hideTimeout.clear();\n showTimeout.set();\n };\n\n const handleTargetClick = () => {\n if (hovered.current && shown) {\n return;\n }\n setShown(!shown);\n };\n\n const handleTargetLeave = () => {\n hovered.current = false;\n showTimeout.clear();\n hideTimeout.set();\n };\n\n const handleContentKeyDownEscape = () => {\n setShown(false);\n };\n\n const handleOutsideClick = (e: MouseEvent) => {\n if (\n dropdownNode &&\n !childRef.current?.contains(e.target as Node) &&\n !dropdownNode.contains(e.target as Node)\n ) {\n setShown(false);\n }\n };\n\n useGlobalEventListener(document, 'click', handleOutsideClick, {\n capture: true,\n passive: true,\n });\n const targetEnterListener = useEventListener('mouseenter', handleTargetEnter);\n const targetClickEvent = useEventListener('click', handleTargetClick);\n const targetLeaveListener = useEventListener('mouseleave', handleTargetLeave);\n\n React.useEffect(() => {\n if (!childRef.current) {\n return;\n }\n\n targetClickEvent.add(childRef.current);\n }, [childRef, targetClickEvent]);\n\n React.useEffect(() => {\n if (!childRef.current) {\n return;\n }\n\n if (hoverable) {\n targetEnterListener.add(childRef.current);\n targetLeaveListener.add(childRef.current);\n }\n\n return () => {\n targetEnterListener.remove();\n targetLeaveListener.remove();\n };\n }, [childRef, hoverable, targetEnterListener, targetLeaveListener]);\n\n return (\n <React.Fragment>\n {child}\n {shown && (\n <Popper\n {...restProps}\n className={classNames(styles['Popover'], className)}\n targetRef={childRef}\n getRef={patchedPopperRef}\n offsetDistance={offsetDistance}\n style={\n // Reason: Typescript ругается на CSS Custom Properties в объекте\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n {\n ...styleProp,\n '--vkui_internal--popover_safe_zone_padding': `${offsetDistance}px`,\n } as React.CSSProperties\n }\n renderContent={({ className: wrapperClassName }) => (\n <FocusTrap\n className={wrapperClassName}\n onClose={handleContentKeyDownEscape}\n restoreFocus={restoreFocus}\n >\n {content}\n </FocusTrap>\n )}\n onMouseOver={hoverable ? hideTimeout.clear : undefined}\n onMouseOut={hoverable ? handleTargetLeave : undefined}\n />\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","classNames","useEventListener","useExternRef","useGlobalEventListener","usePatchChildrenRef","useTimeout","useDOM","FocusTrap","Popper","Popover","action","shown","shownProp","showDelay","hideDelay","offsetDistance","content","children","style","styleProp","className","getRef","onShownChange","restoreFocus","restProps","document","hoverable","hovered","useRef","useState","computedShown","setComputedShown","dropdownNode","setPopperNode","patchedPopperRef","childRef","child","setShown","value","showTimeout","hideTimeout","handleTargetEnter","current","clear","set","handleTargetClick","handleTargetLeave","handleContentKeyDownEscape","handleOutsideClick","e","contains","target","capture","passive","targetEnterListener","targetClickEvent","targetLeaveListener","useEffect","add","remove","Fragment","targetRef","renderContent","wrapperClassName","onClose","onMouseOver","undefined","onMouseOut"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Popper/Popper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport {\n arrowMiddleware,\n autoPlacementMiddleware,\n autoUpdateFloatingElement,\n checkIsNotAutoPlacement,\n convertFloatingDataToReactCSSProperties,\n flipMiddleware,\n getAutoPlacementAlign,\n offsetMiddleware,\n type Placement,\n type PlacementWithAuto,\n shiftMiddleware,\n sizeMiddleware,\n useFloating,\n type UseFloatingMiddleware,\n} from '../../lib/floating';\nimport type { HasRef } from '../../types';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport {\n DEFAULT_ARROW_HEIGHT,\n DEFAULT_ARROW_PADDING,\n DefaultIcon,\n} from '../PopperArrow/DefaultIcon';\nimport { PopperArrow, type PopperArrowProps } from '../PopperArrow/PopperArrow';\nimport styles from './Popper.module.css';\n\nexport interface PopperRenderContentProps {\n className: string;\n}\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: PlacementWithAuto;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Высота стрелки. Складывается с `offsetDistance`, чтобы стрелка не залезала на якорный элемент.\n */\n arrowHeight?: number;\n /**\n * Безопасная зона вокруг стрелки, чтобы та не выходила за края контента.\n */\n arrowPadding?: number;\n /**\n * Стиль стрелки.\n */\n arrowClassName?: string;\n /**\n * Пользовательская SVG иконка.\n *\n * Требования:\n *\n * 1. Иконка по умолчанию должна быть направлена вверх (a.k.a `IconUp`).\n * 2. Чтобы избежать проблемы с пространством между стрелкой и контентом на некоторых экранах,\n * растяните кривую по высоте на `1px` и увеличьте на этот размер `height` и `viewBox` SVG.\n * (см. https://github.com/VKCOM/VKUI/pull/4496).\n * 3. Передайте высоту иконки в параметр `arrowHeight`. В значении высоты можно исключить хак с `1px` из п.2.\n * 4. Убедитесь, что компонент принимает все валидные для SVG параметры.\n * 5. Убедитесь, что SVG и её элементы наследует цвет через `fill=\"currentColor\"`.\n */\n ArrowIcon?: PopperArrowProps['Icon'];\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n /**\n * Кастомный root-элемент портала.\n * При передаче вместе с `forcePorta=true` игнорируется `portalRoot` и `disablePortal`\n * из контекста `AppRoot`.\n */\n portalRoot?: HTMLElement | React.RefObject<HTMLElement> | null;\n /**\n * Подписывается на изменение геометрии `targetRef`, чтобы пересчитать свою позицию.\n */\n autoUpdateOnTargetResize?: boolean;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customMiddlewares?: UseFloatingMiddleware[];\n /**\n * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.\n *\n * Если хочется управлять этим контейнером, то используйте данную функцию.\n *\n * > ⚠️ Параметр `children` будет проигнорирован.\n */\n renderContent?(props: PopperRenderContentProps): React.ReactNode;\n onPlacementChange?(data: { placement?: Placement }): void;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement: placementProp = 'bottom-start',\n onPlacementChange,\n arrow,\n arrowHeight = DEFAULT_ARROW_HEIGHT,\n arrowPadding = DEFAULT_ARROW_PADDING,\n arrowClassName,\n ArrowIcon = DefaultIcon,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n portalRoot,\n autoUpdateOnTargetResize = false,\n style: styleProp,\n customMiddlewares,\n renderContent,\n className,\n ...restProps\n}: PopperProps) => {\n const [arrowRef, setArrowRef] = React.useState<HTMLDivElement | null>(null);\n\n const isNotAutoPlacement = checkIsNotAutoPlacement(placementProp);\n\n const memoizedMiddlewares = React.useMemo(() => {\n const middlewares: UseFloatingMiddleware[] = [\n offsetMiddleware({\n crossAxis: offsetSkidding,\n mainAxis: arrow ? offsetDistance + arrowHeight : offsetDistance,\n }),\n ];\n\n // см. https://floating-ui.com/docs/flip#conflict-with-autoplacement\n if (isNotAutoPlacement) {\n middlewares.push(flipMiddleware());\n } else {\n middlewares.push(\n autoPlacementMiddleware({ alignment: getAutoPlacementAlign(placementProp) }),\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 return middlewares;\n }, [\n offsetSkidding,\n arrowRef,\n arrow,\n arrowHeight,\n arrowPadding,\n offsetDistance,\n isNotAutoPlacement,\n sameWidth,\n customMiddlewares,\n placementProp,\n ]);\n\n const {\n x: floatingDataX,\n y: floatingDataY,\n strategy: floatingPositionStrategy,\n placement: resolvedPlacement,\n refs,\n middlewareData: { arrow: arrowCoords },\n } = useFloating({\n placement: isNotAutoPlacement ? placementProp : undefined,\n middleware: memoizedMiddlewares,\n whileElementsMounted(...args) {\n return autoUpdateFloatingElement(...args, {\n elementResize: autoUpdateOnTargetResize,\n });\n },\n });\n\n const handleRootRef = useExternRef<HTMLDivElement>(refs.setFloating, getRef);\n\n React.useEffect(() => {\n refs.setReference(targetRef.current);\n }, [refs, targetRef]);\n\n React.useEffect(() => {\n if (resolvedPlacement && onPlacementChange) {\n onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n className={classNames(styles['Popper'], className)}\n ref={handleRootRef}\n style={{\n ...styleProp,\n ...convertFloatingDataToReactCSSProperties(\n floatingPositionStrategy,\n floatingDataX,\n floatingDataY,\n sameWidth ? null : undefined,\n ),\n }}\n >\n {arrow && (\n <PopperArrow\n coords={arrowCoords}\n placement={resolvedPlacement}\n arrowClassName={arrowClassName}\n getRootRef={setArrowRef}\n Icon={ArrowIcon}\n />\n )}\n {renderContent ? renderContent({ className: '' }) : children}\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} portalRoot={portalRoot}>\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"names":["React","classNames","useExternRef","arrowMiddleware","autoPlacementMiddleware","autoUpdateFloatingElement","checkIsNotAutoPlacement","convertFloatingDataToReactCSSProperties","flipMiddleware","getAutoPlacementAlign","offsetMiddleware","shiftMiddleware","sizeMiddleware","useFloating","AppRootPortal","DEFAULT_ARROW_HEIGHT","DEFAULT_ARROW_PADDING","DefaultIcon","PopperArrow","Popper","targetRef","children","getRef","placementProp","placement","onPlacementChange","arrow","arrowHeight","arrowPadding","arrowClassName","ArrowIcon","sameWidth","offsetDistance","offsetSkidding","forcePortal","portalRoot","autoUpdateOnTargetResize","style","styleProp","customMiddlewares","renderContent","className","restProps","useState","arrowRef","setArrowRef","isNotAutoPlacement","memoizedMiddlewares","useMemo","middlewares","crossAxis","mainAxis","push","alignment","apply","rects","elements","Object","assign","floating","width","reference","element","padding","undefined","middleware","whileElementsMounted","args","elementResize","x","floatingDataX","y","floatingDataY","strategy","floatingPositionStrategy","resolvedPlacement","refs","middlewareData","arrowCoords","handleRootRef","setFloating","useEffect","setReference","current","dropdown","div","ref","coords","getRootRef","Icon"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Popper/Popper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport {\n arrowMiddleware,\n autoPlacementMiddleware,\n autoUpdateFloatingElement,\n checkIsNotAutoPlacement,\n convertFloatingDataToReactCSSProperties,\n flipMiddleware,\n getAutoPlacementAlign,\n offsetMiddleware,\n type Placement,\n type PlacementWithAuto,\n shiftMiddleware,\n sizeMiddleware,\n useFloating,\n type UseFloatingMiddleware,\n} from '../../lib/floating';\nimport type { HasRef } from '../../types';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport {\n DEFAULT_ARROW_HEIGHT,\n DEFAULT_ARROW_PADDING,\n DefaultIcon,\n} from '../PopperArrow/DefaultIcon';\nimport { PopperArrow, type PopperArrowProps } from '../PopperArrow/PopperArrow';\nimport styles from './Popper.module.css';\n\nexport interface PopperRenderContentProps {\n className: string;\n}\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: PlacementWithAuto;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Высота стрелки. Складывается с `offsetDistance`, чтобы стрелка не залезала на якорный элемент.\n */\n arrowHeight?: number;\n /**\n * Безопасная зона вокруг стрелки, чтобы та не выходила за края контента.\n */\n arrowPadding?: number;\n /**\n * Стиль стрелки.\n */\n arrowClassName?: string;\n /**\n * Пользовательская SVG иконка.\n *\n * Требования:\n *\n * 1. Иконка по умолчанию должна быть направлена вверх (a.k.a `IconUp`).\n * 2. Чтобы избежать проблемы с пространством между стрелкой и контентом на некоторых экранах,\n * растяните кривую по высоте на `1px` и увеличьте на этот размер `height` и `viewBox` SVG.\n * (см. https://github.com/VKCOM/VKUI/pull/4496).\n * 3. Передайте высоту иконки в параметр `arrowHeight`. В значении высоты можно исключить хак с `1px` из п.2.\n * 4. Убедитесь, что компонент принимает все валидные для SVG параметры.\n * 5. Убедитесь, что SVG и её элементы наследует цвет через `fill=\"currentColor\"`.\n */\n ArrowIcon?: PopperArrowProps['Icon'];\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n /**\n * Кастомный root-элемент портала.\n * При передаче вместе с `forcePorta=true` игнорируется `portalRoot` и `disablePortal`\n * из контекста `AppRoot`.\n */\n portalRoot?: HTMLElement | React.RefObject<HTMLElement> | null;\n /**\n * Подписывается на изменение геометрии `targetRef`, чтобы пересчитать свою позицию.\n */\n autoUpdateOnTargetResize?: boolean;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customMiddlewares?: UseFloatingMiddleware[];\n /**\n * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.\n *\n * Если хочется управлять этим контейнером, то используйте данную функцию.\n *\n * > ⚠️ Параметр `children` будет проигнорирован.\n */\n renderContent?(props: PopperRenderContentProps): React.ReactNode;\n onPlacementChange?(data: { placement?: Placement }): void;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement: placementProp = 'bottom-start',\n onPlacementChange,\n arrow,\n arrowHeight = DEFAULT_ARROW_HEIGHT,\n arrowPadding = DEFAULT_ARROW_PADDING,\n arrowClassName,\n ArrowIcon = DefaultIcon,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n portalRoot,\n autoUpdateOnTargetResize = false,\n style: styleProp,\n customMiddlewares,\n renderContent,\n className,\n ...restProps\n}: PopperProps) => {\n const [arrowRef, setArrowRef] = React.useState<HTMLDivElement | null>(null);\n\n const isNotAutoPlacement = checkIsNotAutoPlacement(placementProp);\n\n const memoizedMiddlewares = React.useMemo(() => {\n const middlewares: UseFloatingMiddleware[] = [\n offsetMiddleware({\n crossAxis: offsetSkidding,\n mainAxis: arrow ? offsetDistance + arrowHeight : offsetDistance,\n }),\n ];\n\n // см. https://floating-ui.com/docs/flip#conflict-with-autoplacement\n if (isNotAutoPlacement) {\n middlewares.push(flipMiddleware());\n } else {\n middlewares.push(\n autoPlacementMiddleware({ alignment: getAutoPlacementAlign(placementProp) }),\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 return middlewares;\n }, [\n offsetSkidding,\n arrowRef,\n arrow,\n arrowHeight,\n arrowPadding,\n offsetDistance,\n isNotAutoPlacement,\n sameWidth,\n customMiddlewares,\n placementProp,\n ]);\n\n const {\n x: floatingDataX,\n y: floatingDataY,\n strategy: floatingPositionStrategy,\n placement: resolvedPlacement,\n refs,\n middlewareData: { arrow: arrowCoords },\n } = useFloating({\n placement: isNotAutoPlacement ? placementProp : undefined,\n middleware: memoizedMiddlewares,\n whileElementsMounted(...args) {\n return autoUpdateFloatingElement(...args, {\n elementResize: autoUpdateOnTargetResize,\n });\n },\n });\n\n const handleRootRef = useExternRef<HTMLDivElement>(refs.setFloating, getRef);\n\n React.useEffect(() => {\n refs.setReference(targetRef.current);\n }, [refs, targetRef]);\n\n React.useEffect(() => {\n if (resolvedPlacement && onPlacementChange) {\n onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n className={classNames(styles['Popper'], className)}\n ref={handleRootRef}\n style={{\n ...styleProp,\n ...convertFloatingDataToReactCSSProperties(\n floatingPositionStrategy,\n floatingDataX,\n floatingDataY,\n sameWidth ? null : undefined,\n ),\n }}\n >\n {arrow && (\n <PopperArrow\n coords={arrowCoords}\n placement={resolvedPlacement}\n arrowClassName={arrowClassName}\n getRootRef={setArrowRef}\n Icon={ArrowIcon}\n />\n )}\n {renderContent ? renderContent({ className: '' }) : children}\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} portalRoot={portalRoot}>\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"names":["React","classNames","useExternRef","arrowMiddleware","autoPlacementMiddleware","autoUpdateFloatingElement","checkIsNotAutoPlacement","convertFloatingDataToReactCSSProperties","flipMiddleware","getAutoPlacementAlign","offsetMiddleware","shiftMiddleware","sizeMiddleware","useFloating","AppRootPortal","DEFAULT_ARROW_HEIGHT","DEFAULT_ARROW_PADDING","DefaultIcon","PopperArrow","Popper","targetRef","children","getRef","placementProp","placement","onPlacementChange","arrow","arrowHeight","arrowPadding","arrowClassName","ArrowIcon","sameWidth","offsetDistance","offsetSkidding","forcePortal","portalRoot","autoUpdateOnTargetResize","style","styleProp","customMiddlewares","renderContent","className","restProps","useState","arrowRef","setArrowRef","isNotAutoPlacement","memoizedMiddlewares","useMemo","middlewares","crossAxis","mainAxis","push","alignment","apply","rects","elements","Object","assign","floating","width","reference","element","padding","undefined","middleware","whileElementsMounted","args","elementResize","x","floatingDataX","y","floatingDataY","strategy","floatingPositionStrategy","resolvedPlacement","refs","middlewareData","arrowCoords","handleRootRef","setFloating","useEffect","setReference","current","dropdown","div","ref","coords","getRootRef","Icon"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PopperArrow/PopperArrow.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { Placement } from '../../lib/floating';\nimport type { HasRootRef } from '../../types';\nimport { DefaultIcon } from './DefaultIcon';\nimport styles from './PopperArrow.module.css';\n\ntype Coords = {\n x?: number;\n y?: number;\n};\n\nconst placementClassNames = {\n right: styles['PopperArrow--placement-right'],\n bottom: styles['PopperArrow--placement-bottom'],\n left: styles['PopperArrow--placement-left'],\n};\n\nexport interface PopperArrowProps extends HasRootRef<HTMLDivElement> {\n coords?: Coords;\n placement: Placement;\n arrowClassName?: string;\n Icon?: React.ComponentType<React.SVGAttributes<SVGSVGElement>>;\n}\n\nexport const PopperArrow = ({\n coords,\n arrowClassName,\n placement,\n getRootRef,\n Icon = DefaultIcon,\n}: PopperArrowProps) => {\n const [arrowPlacement, arrowStyles] = getArrowPositionData(placement, coords);\n\n return (\n <div\n ref={getRootRef}\n style={arrowStyles}\n className={classNames(\n styles['PopperArrow'],\n arrowPlacement && placementClassNames[arrowPlacement],\n )}\n >\n <Icon className={classNames(styles['PopperArrow__in'], arrowClassName)} />\n </div>\n );\n};\n\nfunction getArrowPositionData(\n placement: Placement,\n coords: Coords = { x: 0, y: 0 },\n): [undefined | 'right' | 'bottom' | 'left', React.CSSProperties] {\n if (placement.startsWith('top')) {\n return [\n 'bottom',\n {\n top: '100%',\n left: coords.x,\n },\n ];\n } else if (placement.startsWith('right')) {\n return [\n 'left',\n {\n top: coords.y,\n left: 0,\n },\n ];\n } else if (placement.startsWith('bottom')) {\n return [\n undefined,\n {\n bottom: '100%',\n left: coords.x,\n },\n ];\n } else {\n return [\n 'right',\n {\n top: coords.y,\n right: 0,\n },\n ];\n }\n}\n"],"names":["React","classNames","DefaultIcon","placementClassNames","right","bottom","left","PopperArrow","coords","arrowClassName","placement","getRootRef","Icon","getArrowPositionData","arrowPlacement","arrowStyles","div","ref","style","className","x","y","startsWith","top","undefined"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAG7C,SAASC,WAAW,QAAQ,gBAAgB;AAQ5C,IAAMC,sBAAsB;IAC1BC,KAAK;IACLC,MAAM;IACNC,IAAI;AACN;AASA,OAAO,IAAMC,cAAc;QACzBC,eAAAA,QACAC,uBAAAA,gBACAC,kBAAAA,WACAC,mBAAAA,gCACAC,MAAAA,gCAAOV;IAEP,IAAsCW,yCAAAA,qBAAqBH,WAAWF,aAA/DM,iBAA+BD,0BAAfE,cAAeF;IAEtC,qBACE,oBAACG;QACCC,KAAKN;QACLO,OAAOH;QACPI,WAAWlB,8BAETa,kBAAkBX,mBAAmB,CAACW,eAAe;qBAGvD,oBAACF;QAAKO,WAAWlB,kCAAsCQ;;AAG7D,EAAE;AAEF,SAASI,qBACPH,SAAoB;QACpBF,SAAAA,iEAAiB;QAAEY,GAAG;QAAGC,GAAG;IAAE;IAE9B,IAAIX,UAAUY,WAAW,QAAQ;QAC/B,OAAO;YACL;YACA;gBACEC,KAAK;gBACLjB,MAAME,OAAOY;YACf;SACD;IACH,OAAO,IAAIV,UAAUY,WAAW,UAAU;QACxC,OAAO;YACL;YACA;gBACEC,KAAKf,OAAOa;gBACZf,MAAM;YACR;SACD;IACH,OAAO,IAAII,UAAUY,WAAW,WAAW;QACzC,OAAO;YACLE;YACA;gBACEnB,QAAQ;gBACRC,MAAME,OAAOY;YACf;SACD;IACH,OAAO;QACL,OAAO;YACL;YACA;gBACEG,KAAKf,OAAOa;gBACZjB,OAAO;YACT;SACD;IACH;AACF"}
1
+ {"version":3,"sources":["../../../src/components/PopperArrow/PopperArrow.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { Placement } from '../../lib/floating';\nimport type { HasRootRef } from '../../types';\nimport { DefaultIcon } from './DefaultIcon';\nimport styles from './PopperArrow.module.css';\n\ntype Coords = {\n x?: number;\n y?: number;\n};\n\nconst placementClassNames = {\n right: styles['PopperArrow--placement-right'],\n bottom: styles['PopperArrow--placement-bottom'],\n left: styles['PopperArrow--placement-left'],\n};\n\nexport interface PopperArrowProps extends HasRootRef<HTMLDivElement> {\n coords?: Coords;\n placement: Placement;\n arrowClassName?: string;\n Icon?: React.ComponentType<React.SVGAttributes<SVGSVGElement>>;\n}\n\nexport const PopperArrow = ({\n coords,\n arrowClassName,\n placement,\n getRootRef,\n Icon = DefaultIcon,\n}: PopperArrowProps) => {\n const [arrowPlacement, arrowStyles] = getArrowPositionData(placement, coords);\n\n return (\n <div\n ref={getRootRef}\n style={arrowStyles}\n className={classNames(\n styles['PopperArrow'],\n arrowPlacement && placementClassNames[arrowPlacement],\n )}\n >\n <Icon className={classNames(styles['PopperArrow__in'], arrowClassName)} />\n </div>\n );\n};\n\nfunction getArrowPositionData(\n placement: Placement,\n coords: Coords = { x: 0, y: 0 },\n): [undefined | 'right' | 'bottom' | 'left', React.CSSProperties] {\n if (placement.startsWith('top')) {\n return [\n 'bottom',\n {\n top: '100%',\n left: coords.x,\n },\n ];\n } else if (placement.startsWith('right')) {\n return [\n 'left',\n {\n top: coords.y,\n left: 0,\n },\n ];\n } else if (placement.startsWith('bottom')) {\n return [\n undefined,\n {\n bottom: '100%',\n left: coords.x,\n },\n ];\n } else {\n return [\n 'right',\n {\n top: coords.y,\n right: 0,\n },\n ];\n }\n}\n"],"names":["React","classNames","DefaultIcon","placementClassNames","right","bottom","left","PopperArrow","coords","arrowClassName","placement","getRootRef","Icon","getArrowPositionData","arrowPlacement","arrowStyles","div","ref","style","className","x","y","startsWith","top","undefined"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAG7C,SAASC,WAAW,QAAQ,gBAAgB;AAQ5C,IAAMC,sBAAsB;IAC1BC,KAAK;IACLC,MAAM;IACNC,IAAI;AACN;AASA,OAAO,IAAMC,cAAc;QACzBC,eAAAA,QACAC,uBAAAA,gBACAC,kBAAAA,WACAC,mBAAAA,gCACAC,MAAAA,gCAAOV;IAEP,IAAsCW,yCAAAA,qBAAqBH,WAAWF,aAA/DM,iBAA+BD,0BAAfE,cAAeF;IAEtC,qBACE,oBAACG;QACCC,KAAKN;QACLO,OAAOH;QACPI,WAAWlB,8BAETa,kBAAkBX,mBAAmB,CAACW,eAAe;qBAGvD,oBAACF;QAAKO,WAAWlB,kCAAsCQ;;AAG7D,EAAE;AAEF,SAASI,qBACPH,SAAoB;QACpBF,SAAAA,iEAAiB;QAAEY,GAAG;QAAGC,GAAG;IAAE;IAE9B,IAAIX,UAAUY,UAAU,CAAC,QAAQ;QAC/B,OAAO;YACL;YACA;gBACEC,KAAK;gBACLjB,MAAME,OAAOY,CAAC;YAChB;SACD;IACH,OAAO,IAAIV,UAAUY,UAAU,CAAC,UAAU;QACxC,OAAO;YACL;YACA;gBACEC,KAAKf,OAAOa,CAAC;gBACbf,MAAM;YACR;SACD;IACH,OAAO,IAAII,UAAUY,UAAU,CAAC,WAAW;QACzC,OAAO;YACLE;YACA;gBACEnB,QAAQ;gBACRC,MAAME,OAAOY,CAAC;YAChB;SACD;IACH,OAAO;QACL,OAAO;YACL;YACA;gBACEG,KAAKf,OAAOa,CAAC;gBACbjB,OAAO;YACT;SACD;IACH;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PromoBanner/PromoBanner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Dismiss } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { Button } from '../Button/Button';\nimport { Image } from '../Image/Image';\nimport { SimpleCell } from '../SimpleCell/SimpleCell';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './PromoBanner.module.css';\n\nconst warn = warnOnce('PromoBanner');\n\ntype StatsType =\n | 'playbackStarted' // Начало показа\n | 'click'; // Клик по баннеру\n\ntype BannerData = {\n title?: string;\n url_types?: string;\n bannerID?: string;\n imageWidth?: number;\n imageHeight?: number;\n imageLink?: string;\n trackingLink?: string;\n type?: string;\n iconWidth?: number;\n domain?: string;\n ctaText?: string;\n advertisingLabel?: string;\n iconLink?: string;\n statistics?: Array<{ type: StatsType; url: string }>;\n openInBrowser?: boolean;\n iconHeight?: number;\n directLink?: boolean;\n navigationType?: string;\n description?: string;\n ageRestrictions?: string;\n};\n\nexport interface PromoBannerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Данные рекламного баннера, полученные из VKWebAppGetAds */\n bannerData: BannerData;\n /** Флаг скрытия кнопки закрытия рекламы */\n isCloseButtonHidden?: boolean;\n /** Хандлер закрытия рекламы */\n onClose: () => void;\n}\n\n// TODO [>=6]: Удалить компонент\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PromoBanner\n * @deprecated v5.3.1\n *\n * Используйте событие [VKWebAppShowBannerAd](https://dev.vk.com/mini-apps/monetization/ad/banners)\n */\nexport const PromoBanner = ({\n bannerData = {},\n onClose,\n isCloseButtonHidden,\n className,\n ...restProps\n}: PromoBannerProps) => {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Компонент устарел и будет удален в v6. Используйте событие VKWebAppShowBannerAd https://dev.vk.com/mini-apps/monetization/ad/banners',\n );\n }\n\n const [currentPixel, setCurrentPixel] = React.useState('');\n\n const statsPixels = React.useMemo(\n () =>\n (bannerData.statistics\n ? bannerData.statistics.reduce((acc, item) => ({ ...acc, [item.type]: item.url }), {})\n : {}) as Record<StatsType, string | void>,\n [bannerData.statistics],\n );\n\n const onClick = React.useCallback(\n () => setCurrentPixel(statsPixels.click || ''),\n [statsPixels.click],\n );\n\n React.useEffect(() => {\n if (statsPixels.playbackStarted) {\n setCurrentPixel(statsPixels.playbackStarted);\n }\n }, [statsPixels.playbackStarted]);\n\n return (\n <div className={classNames(styles['PromoBanner'], className)} {...restProps}>\n <div className={styles['PromoBanner__head']}>\n <Footnote>{bannerData.advertisingLabel || 'Advertisement'}</Footnote>\n {bannerData.ageRestrictions && (\n <Footnote className={styles['PromoBanner__age']}>{bannerData.ageRestrictions}</Footnote>\n )}\n\n {!isCloseButtonHidden && (\n <div className={styles['PromoBanner__close']} onClick={onClose}>\n <Icon24Dismiss />\n </div>\n )}\n </div>\n <SimpleCell\n href={bannerData.trackingLink}\n onClick={onClick}\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n before={\n bannerData.iconLink && (\n <Image\n size={48}\n src={bannerData.iconLink}\n alt={bannerData.title}\n data-testid={process.env.NODE_ENV === 'test' ? 'avatar' : undefined}\n />\n )\n }\n after={\n bannerData.ctaText && (\n <Button\n mode=\"outline\"\n data-testid={process.env.NODE_ENV === 'test' ? 'button-ctaText' : undefined}\n >\n {bannerData.ctaText}\n </Button>\n )\n }\n subtitle={bannerData.domain}\n >\n {bannerData.title}\n </SimpleCell>\n\n {currentPixel.length > 0 && (\n <div className={styles['PromoBanner__pixels']}>\n <img src={currentPixel} alt=\"\" />\n </div>\n )}\n </div>\n );\n};\n"],"names":["React","Icon24Dismiss","classNames","warnOnce","Button","Image","SimpleCell","Footnote","warn","PromoBanner","bannerData","onClose","isCloseButtonHidden","className","restProps","process","env","NODE_ENV","useState","currentPixel","setCurrentPixel","statsPixels","useMemo","statistics","reduce","acc","item","type","url","onClick","useCallback","click","useEffect","playbackStarted","div","advertisingLabel","ageRestrictions","href","trackingLink","rel","target","before","iconLink","size","src","alt","title","data-testid","undefined","after","ctaText","mode","subtitle","domain","length","img"],"mappings":";;;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,KAAK,QAAQ,iBAAiB;AACvC,SAASC,UAAU,QAAQ,2BAA2B;AACtD,SAASC,QAAQ,QAAQ,kCAAkC;AAG3D,IAAMC,OAAOL,SAAS;AAsCtB,gCAAgC;AAEhC;;;;;CAKC,GACD,OAAO,IAAMM,cAAc;mCACzBC,YAAAA,4CAAa,CAAC,uBACdC,iBAAAA,SACAC,6BAAAA,qBACAC,mBAAAA,WACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAIE,QAAQC,IAAIC,aAAa,eAAe;QAC1CT,KACE;IAEJ;IAEA,IAAwCR,mCAAAA,MAAMkB,SAAS,SAAhDC,eAAiCnB,oBAAnBoB,kBAAmBpB;IAExC,IAAMqB,cAAcrB,MAAMsB,QACxB;eACGZ,WAAWa,aACRb,WAAWa,WAAWC,OAAO,SAACC,KAAKC;mBAAU,wCAAKD,MAAK,qBAACC,KAAKC,MAAOD,KAAKE;WAAQ,CAAC,KAClF,CAAC;OACP;QAAClB,WAAWa;KAAW;IAGzB,IAAMM,UAAU7B,MAAM8B,YACpB;eAAMV,gBAAgBC,YAAYU,SAAS;OAC3C;QAACV,YAAYU;KAAM;IAGrB/B,MAAMgC,UAAU;QACd,IAAIX,YAAYY,iBAAiB;YAC/Bb,gBAAgBC,YAAYY;QAC9B;IACF,GAAG;QAACZ,YAAYY;KAAgB;IAEhC,qBACE,oBAACC;QAAIrB,WAAWX,8BAAkCW;OAAgBC,0BAChE,oBAACoB;QAAIrB,SAAS;qBACZ,oBAACN,gBAAUG,WAAWyB,oBAAoB,kBACzCzB,WAAW0B,iCACV,oBAAC7B;QAASM,SAAS;OAA+BH,WAAW0B,kBAG9D,CAACxB,qCACA,oBAACsB;QAAIrB,SAAS;QAAgCgB,SAASlB;qBACrD,oBAACV,sCAIP,oBAACK;QACC+B,MAAM3B,WAAW4B;QACjBT,SAASA;QACTU,KAAI;QACJC,QAAO;QACPC,QACE/B,WAAWgC,0BACT,oBAACrC;YACCsC,MAAM;YACNC,KAAKlC,WAAWgC;YAChBG,KAAKnC,WAAWoC;YAChBC,eAAahC,QAAQC,IAAIC,aAAa,SAAS,WAAW+B;;QAIhEC,OACEvC,WAAWwC,yBACT,oBAAC9C;YACC+C,MAAK;YACLJ,eAAahC,QAAQC,IAAIC,aAAa,SAAS,mBAAmB+B;WAEjEtC,WAAWwC;QAIlBE,UAAU1C,WAAW2C;OAEpB3C,WAAWoC,QAGb3B,aAAamC,SAAS,mBACrB,oBAACpB;QAAIrB,SAAS;qBACZ,oBAAC0C;QAAIX,KAAKzB;QAAc0B,KAAI;;AAKtC,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/PromoBanner/PromoBanner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Dismiss } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { Button } from '../Button/Button';\nimport { Image } from '../Image/Image';\nimport { SimpleCell } from '../SimpleCell/SimpleCell';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './PromoBanner.module.css';\n\nconst warn = warnOnce('PromoBanner');\n\ntype StatsType =\n | 'playbackStarted' // Начало показа\n | 'click'; // Клик по баннеру\n\ntype BannerData = {\n title?: string;\n url_types?: string;\n bannerID?: string;\n imageWidth?: number;\n imageHeight?: number;\n imageLink?: string;\n trackingLink?: string;\n type?: string;\n iconWidth?: number;\n domain?: string;\n ctaText?: string;\n advertisingLabel?: string;\n iconLink?: string;\n statistics?: Array<{ type: StatsType; url: string }>;\n openInBrowser?: boolean;\n iconHeight?: number;\n directLink?: boolean;\n navigationType?: string;\n description?: string;\n ageRestrictions?: string;\n};\n\nexport interface PromoBannerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Данные рекламного баннера, полученные из VKWebAppGetAds */\n bannerData: BannerData;\n /** Флаг скрытия кнопки закрытия рекламы */\n isCloseButtonHidden?: boolean;\n /** Хандлер закрытия рекламы */\n onClose: () => void;\n}\n\n// TODO [>=6]: Удалить компонент\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PromoBanner\n * @deprecated v5.3.1\n *\n * Используйте событие [VKWebAppShowBannerAd](https://dev.vk.com/mini-apps/monetization/ad/banners)\n */\nexport const PromoBanner = ({\n bannerData = {},\n onClose,\n isCloseButtonHidden,\n className,\n ...restProps\n}: PromoBannerProps) => {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Компонент устарел и будет удален в v6. Используйте событие VKWebAppShowBannerAd https://dev.vk.com/mini-apps/monetization/ad/banners',\n );\n }\n\n const [currentPixel, setCurrentPixel] = React.useState('');\n\n const statsPixels = React.useMemo(\n () =>\n (bannerData.statistics\n ? bannerData.statistics.reduce((acc, item) => ({ ...acc, [item.type]: item.url }), {})\n : {}) as Record<StatsType, string | void>,\n [bannerData.statistics],\n );\n\n const onClick = React.useCallback(\n () => setCurrentPixel(statsPixels.click || ''),\n [statsPixels.click],\n );\n\n React.useEffect(() => {\n if (statsPixels.playbackStarted) {\n setCurrentPixel(statsPixels.playbackStarted);\n }\n }, [statsPixels.playbackStarted]);\n\n return (\n <div className={classNames(styles['PromoBanner'], className)} {...restProps}>\n <div className={styles['PromoBanner__head']}>\n <Footnote>{bannerData.advertisingLabel || 'Advertisement'}</Footnote>\n {bannerData.ageRestrictions && (\n <Footnote className={styles['PromoBanner__age']}>{bannerData.ageRestrictions}</Footnote>\n )}\n\n {!isCloseButtonHidden && (\n <div className={styles['PromoBanner__close']} onClick={onClose}>\n <Icon24Dismiss />\n </div>\n )}\n </div>\n <SimpleCell\n href={bannerData.trackingLink}\n onClick={onClick}\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n before={\n bannerData.iconLink && (\n <Image\n size={48}\n src={bannerData.iconLink}\n alt={bannerData.title}\n data-testid={process.env.NODE_ENV === 'test' ? 'avatar' : undefined}\n />\n )\n }\n after={\n bannerData.ctaText && (\n <Button\n mode=\"outline\"\n data-testid={process.env.NODE_ENV === 'test' ? 'button-ctaText' : undefined}\n >\n {bannerData.ctaText}\n </Button>\n )\n }\n subtitle={bannerData.domain}\n >\n {bannerData.title}\n </SimpleCell>\n\n {currentPixel.length > 0 && (\n <div className={styles['PromoBanner__pixels']}>\n <img src={currentPixel} alt=\"\" />\n </div>\n )}\n </div>\n );\n};\n"],"names":["React","Icon24Dismiss","classNames","warnOnce","Button","Image","SimpleCell","Footnote","warn","PromoBanner","bannerData","onClose","isCloseButtonHidden","className","restProps","process","env","NODE_ENV","useState","currentPixel","setCurrentPixel","statsPixels","useMemo","statistics","reduce","acc","item","type","url","onClick","useCallback","click","useEffect","playbackStarted","div","advertisingLabel","ageRestrictions","href","trackingLink","rel","target","before","iconLink","size","src","alt","title","data-testid","undefined","after","ctaText","mode","subtitle","domain","length","img"],"mappings":";;;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,KAAK,QAAQ,iBAAiB;AACvC,SAASC,UAAU,QAAQ,2BAA2B;AACtD,SAASC,QAAQ,QAAQ,kCAAkC;AAG3D,IAAMC,OAAOL,SAAS;AAsCtB,gCAAgC;AAEhC;;;;;CAKC,GACD,OAAO,IAAMM,cAAc;mCACzBC,YAAAA,4CAAa,CAAC,uBACdC,iBAAAA,SACAC,6BAAAA,qBACAC,mBAAAA,WACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAIE,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1CT,KACE;IAEJ;IAEA,IAAwCR,mCAAAA,MAAMkB,QAAQ,CAAC,SAAhDC,eAAiCnB,oBAAnBoB,kBAAmBpB;IAExC,IAAMqB,cAAcrB,MAAMsB,OAAO,CAC/B;eACGZ,WAAWa,UAAU,GAClBb,WAAWa,UAAU,CAACC,MAAM,CAAC,SAACC,KAAKC;mBAAU,wCAAKD,MAAK,qBAACC,KAAKC,IAAI,EAAGD,KAAKE,GAAG;WAAK,CAAC,KAClF,CAAC;OACP;QAAClB,WAAWa,UAAU;KAAC;IAGzB,IAAMM,UAAU7B,MAAM8B,WAAW,CAC/B;eAAMV,gBAAgBC,YAAYU,KAAK,IAAI;OAC3C;QAACV,YAAYU,KAAK;KAAC;IAGrB/B,MAAMgC,SAAS,CAAC;QACd,IAAIX,YAAYY,eAAe,EAAE;YAC/Bb,gBAAgBC,YAAYY,eAAe;QAC7C;IACF,GAAG;QAACZ,YAAYY,eAAe;KAAC;IAEhC,qBACE,oBAACC;QAAIrB,WAAWX,8BAAkCW;OAAgBC,0BAChE,oBAACoB;QAAIrB,SAAS;qBACZ,oBAACN,gBAAUG,WAAWyB,gBAAgB,IAAI,kBACzCzB,WAAW0B,eAAe,kBACzB,oBAAC7B;QAASM,SAAS;OAA+BH,WAAW0B,eAAe,GAG7E,CAACxB,qCACA,oBAACsB;QAAIrB,SAAS;QAAgCgB,SAASlB;qBACrD,oBAACV,sCAIP,oBAACK;QACC+B,MAAM3B,WAAW4B,YAAY;QAC7BT,SAASA;QACTU,KAAI;QACJC,QAAO;QACPC,QACE/B,WAAWgC,QAAQ,kBACjB,oBAACrC;YACCsC,MAAM;YACNC,KAAKlC,WAAWgC,QAAQ;YACxBG,KAAKnC,WAAWoC,KAAK;YACrBC,eAAahC,QAAQC,GAAG,CAACC,QAAQ,KAAK,SAAS,WAAW+B;;QAIhEC,OACEvC,WAAWwC,OAAO,kBAChB,oBAAC9C;YACC+C,MAAK;YACLJ,eAAahC,QAAQC,GAAG,CAACC,QAAQ,KAAK,SAAS,mBAAmB+B;WAEjEtC,WAAWwC,OAAO;QAIzBE,UAAU1C,WAAW2C,MAAM;OAE1B3C,WAAWoC,KAAK,GAGlB3B,aAAamC,MAAM,GAAG,mBACrB,oBAACpB;QAAIrB,SAAS;qBACZ,oBAAC0C;QAAIX,KAAKzB;QAAc0B,KAAI;;AAKtC,EAAE"}