@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
@@ -165,9 +165,10 @@ var TOUCH_MOVE_EVENT_PARAMS = {
165
165
  setTouchDown(true);
166
166
  };
167
167
  var onTouchMove = function(e) {
168
+ var _scroll;
168
169
  var isY = e.isY, shiftY = e.shiftY;
169
170
  var start = initParams.start, max = initParams.max;
170
- var pageYOffset = scroll === null || scroll === void 0 ? void 0 : scroll.getScroll().y;
171
+ var pageYOffset = (_scroll = scroll) === null || _scroll === void 0 ? void 0 : _scroll.getScroll().y;
171
172
  if (watching && touchDown) {
172
173
  cancelEvent(e);
173
174
  var positionMultiplier = initParams.positionMultiplier, maxY = initParams.maxY;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PullToRefresh/PullToRefresh.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { DOMProps, useDOM } from '../../lib/dom';\nimport { Platform } from '../../lib/platform';\nimport { runTapticImpactOccurred } from '../../lib/taptic';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { AnyFunction, HasChildren } from '../../types';\nimport { ScrollContextInterface, useScroll } from '../AppRoot/ScrollContext';\nimport { FixedLayout } from '../FixedLayout/FixedLayout';\nimport { Touch, TouchEvent, TouchProps } from '../Touch/Touch';\nimport TouchRootContext from '../Touch/TouchContext';\nimport { PullToRefreshSpinner } from './PullToRefreshSpinner';\nimport styles from './PullToRefresh.module.css';\n\nfunction cancelEvent(event: any) {\n if (!event) {\n return false;\n }\n while (event.originalEvent) {\n event = event.originalEvent;\n }\n if (event.preventDefault && event.cancelable) {\n event.preventDefault();\n }\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n return false;\n}\n\nexport interface PullToRefreshProps extends DOMProps, TouchProps, HasChildren {\n /**\n * Будет вызвана для обновления контента (прим.: функция должна быть мемоизированным коллбэком)\n */\n onRefresh: AnyFunction;\n /**\n * Определяет, выполняется ли обновление. Для скрытия спиннера после получения контента необходимо передать `false`\n */\n isFetching?: boolean;\n /** @ignore */\n scroll?: ScrollContextInterface;\n}\n\nconst TOUCH_MOVE_EVENT_PARAMS = {\n cancelable: true,\n passive: false,\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PullToRefresh\n */\nexport const PullToRefresh = ({\n children,\n isFetching,\n onRefresh,\n className,\n ...restProps\n}: PullToRefreshProps) => {\n const platform = usePlatform();\n const scroll = useScroll();\n const { document } = useDOM();\n const prevIsFetching = usePrevious(isFetching);\n\n const initParams = React.useMemo(\n () => ({\n start: platform === Platform.IOS ? -10 : -45,\n max: platform === Platform.IOS ? 50 : 80,\n maxY: platform === Platform.IOS ? 400 : 80,\n refreshing: platform === Platform.IOS ? 36 : 50,\n positionMultiplier: platform === Platform.IOS ? 0.21 : 1,\n }),\n [platform],\n );\n\n const [spinnerY, setSpinnerY] = React.useState(initParams.start);\n const [watching, setWatching] = React.useState(false);\n const [refreshing, setRefreshing] = React.useState(false);\n const [canRefresh, setCanRefresh] = React.useState(false);\n const [touchDown, setTouchDown] = React.useState(false);\n const prevTouchDown = usePrevious(touchDown);\n\n const touchY = React.useRef(0);\n const [contentShift, setContentShift] = React.useState(0);\n const [spinnerProgress, setSpinnerProgress] = React.useState(0);\n\n const onWindowTouchMove = (event: Event) => {\n if (refreshing) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n useGlobalEventListener(document, 'touchmove', onWindowTouchMove, TOUCH_MOVE_EVENT_PARAMS);\n\n const resetRefreshingState = React.useCallback(() => {\n setWatching(false);\n setCanRefresh(false);\n setRefreshing(false);\n setSpinnerY(initParams.start);\n setSpinnerProgress(0);\n setContentShift(0);\n }, [initParams]);\n\n const onRefreshingFinish = React.useCallback(() => {\n if (!touchDown) {\n resetRefreshingState();\n }\n }, [touchDown, resetRefreshingState]);\n\n const { set: setWaitFetchingTimeout, clear: clearWaitFetchingTimeout } = useTimeout(\n onRefreshingFinish,\n 1000,\n );\n\n useIsomorphicLayoutEffect(() => {\n if (prevIsFetching !== undefined && prevIsFetching && !isFetching) {\n onRefreshingFinish();\n }\n }, [prevIsFetching, isFetching, onRefreshingFinish]);\n\n useIsomorphicLayoutEffect(() => {\n if (prevIsFetching !== undefined && !prevIsFetching && isFetching) {\n clearWaitFetchingTimeout();\n }\n }, [isFetching, prevIsFetching, clearWaitFetchingTimeout]);\n\n const runRefreshing = React.useCallback(() => {\n if (!refreshing && onRefresh) {\n // cleanup if the consumer does not start fetching in 1s\n setWaitFetchingTimeout();\n\n setRefreshing(true);\n setSpinnerY((prevSpinnerY) =>\n platform === Platform.IOS ? prevSpinnerY : initParams.refreshing,\n );\n\n onRefresh();\n runTapticImpactOccurred('light');\n }\n }, [refreshing, onRefresh, setWaitFetchingTimeout, platform, initParams.refreshing]);\n\n useIsomorphicLayoutEffect(() => {\n if (prevTouchDown !== undefined && prevTouchDown && !touchDown) {\n if (!refreshing && canRefresh) {\n runRefreshing();\n } else if (refreshing && !isFetching) {\n // only iOS can start refresh before gesture end\n resetRefreshingState();\n } else {\n // refreshing && isFetching: refresh in progress\n // OR !refreshing && !canRefresh: pull was not strong enough\n setSpinnerY(refreshing ? initParams.refreshing : initParams.start);\n setSpinnerProgress(0);\n setContentShift(0);\n }\n }\n }, [\n initParams,\n prevIsFetching,\n isFetching,\n onRefreshingFinish,\n prevTouchDown,\n touchDown,\n refreshing,\n canRefresh,\n runRefreshing,\n ]);\n\n const onTouchStart = (e: TouchEvent) => {\n if (refreshing) {\n cancelEvent(e);\n }\n setTouchDown(true);\n };\n\n const onTouchMove = (e: TouchEvent) => {\n const { isY, shiftY } = e;\n const { start, max } = initParams;\n const pageYOffset = scroll?.getScroll().y;\n\n if (watching && touchDown) {\n cancelEvent(e);\n\n const { positionMultiplier, maxY } = initParams;\n\n const shift = Math.max(0, shiftY - touchY.current);\n\n const currentY = clamp(start + shift * positionMultiplier, start, maxY);\n const progress = currentY > -10 ? Math.abs((currentY + 10) / max) * 80 : 0;\n\n setSpinnerY(currentY);\n setSpinnerProgress(clamp(progress, 0, 80));\n setCanRefresh(progress > 80);\n setContentShift((currentY + 10) * 2.3);\n\n if (progress > 85 && !refreshing && platform === Platform.IOS) {\n runRefreshing();\n }\n } else if (isY && pageYOffset === 0 && shiftY > 0 && !refreshing && touchDown) {\n cancelEvent(e);\n\n touchY.current = shiftY;\n setWatching(true);\n setSpinnerY(start);\n setSpinnerProgress(0);\n }\n };\n\n const onTouchEnd = () => {\n setWatching(false);\n setTouchDown(false);\n };\n\n const spinnerTransform = `translate3d(0, ${spinnerY}px, 0)`;\n let contentTransform = '';\n\n if (platform === Platform.IOS && refreshing && !touchDown) {\n contentTransform = 'translate3d(0, 100px, 0)';\n } else if (platform === Platform.IOS && (contentShift || refreshing)) {\n contentTransform = `translate3d(0, ${contentShift}px, 0)`;\n }\n\n return (\n <TouchRootContext.Provider value={true}>\n <Touch\n {...restProps}\n onStart={onTouchStart}\n onMove={onTouchMove}\n onEnd={onTouchEnd}\n className={classNames(\n styles['PullToRefresh'],\n platform === Platform.IOS && styles['PullToRefresh--ios'],\n watching && styles['PullToRefresh--watching'],\n refreshing && styles['PullToRefresh--refreshing'],\n className,\n )}\n >\n <FixedLayout className={styles['PullToRefresh__controls']} useParentWidth>\n <PullToRefreshSpinner\n style={{\n transform: spinnerTransform,\n WebkitTransform: spinnerTransform,\n opacity: watching || refreshing || canRefresh ? 1 : 0,\n }}\n on={refreshing}\n progress={refreshing ? undefined : spinnerProgress}\n />\n </FixedLayout>\n\n <div\n className={styles['PullToRefresh__content']}\n style={{\n transform: contentTransform,\n WebkitTransform: contentTransform,\n }}\n >\n {children}\n </div>\n </Touch>\n </TouchRootContext.Provider>\n );\n};\n"],"names":["React","classNames","clamp","useGlobalEventListener","usePlatform","usePrevious","useTimeout","useDOM","Platform","runTapticImpactOccurred","useIsomorphicLayoutEffect","useScroll","FixedLayout","Touch","TouchRootContext","PullToRefreshSpinner","cancelEvent","event","originalEvent","preventDefault","cancelable","stopPropagation","TOUCH_MOVE_EVENT_PARAMS","passive","PullToRefresh","children","isFetching","onRefresh","className","restProps","platform","scroll","document","prevIsFetching","initParams","useMemo","start","IOS","max","maxY","refreshing","positionMultiplier","useState","spinnerY","setSpinnerY","watching","setWatching","setRefreshing","canRefresh","setCanRefresh","touchDown","setTouchDown","prevTouchDown","touchY","useRef","contentShift","setContentShift","spinnerProgress","setSpinnerProgress","onWindowTouchMove","resetRefreshingState","useCallback","onRefreshingFinish","set","setWaitFetchingTimeout","clear","clearWaitFetchingTimeout","undefined","runRefreshing","prevSpinnerY","onTouchStart","e","onTouchMove","isY","shiftY","pageYOffset","getScroll","y","shift","Math","current","currentY","progress","abs","onTouchEnd","spinnerTransform","contentTransform","Provider","value","onStart","onMove","onEnd","useParentWidth","style","transform","WebkitTransform","opacity","on","div"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/PullToRefresh/PullToRefresh.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { DOMProps, useDOM } from '../../lib/dom';\nimport { Platform } from '../../lib/platform';\nimport { runTapticImpactOccurred } from '../../lib/taptic';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { AnyFunction, HasChildren } from '../../types';\nimport { ScrollContextInterface, useScroll } from '../AppRoot/ScrollContext';\nimport { FixedLayout } from '../FixedLayout/FixedLayout';\nimport { Touch, TouchEvent, TouchProps } from '../Touch/Touch';\nimport TouchRootContext from '../Touch/TouchContext';\nimport { PullToRefreshSpinner } from './PullToRefreshSpinner';\nimport styles from './PullToRefresh.module.css';\n\nfunction cancelEvent(event: any) {\n if (!event) {\n return false;\n }\n while (event.originalEvent) {\n event = event.originalEvent;\n }\n if (event.preventDefault && event.cancelable) {\n event.preventDefault();\n }\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n return false;\n}\n\nexport interface PullToRefreshProps extends DOMProps, TouchProps, HasChildren {\n /**\n * Будет вызвана для обновления контента (прим.: функция должна быть мемоизированным коллбэком)\n */\n onRefresh: AnyFunction;\n /**\n * Определяет, выполняется ли обновление. Для скрытия спиннера после получения контента необходимо передать `false`\n */\n isFetching?: boolean;\n /** @ignore */\n scroll?: ScrollContextInterface;\n}\n\nconst TOUCH_MOVE_EVENT_PARAMS = {\n cancelable: true,\n passive: false,\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PullToRefresh\n */\nexport const PullToRefresh = ({\n children,\n isFetching,\n onRefresh,\n className,\n ...restProps\n}: PullToRefreshProps) => {\n const platform = usePlatform();\n const scroll = useScroll();\n const { document } = useDOM();\n const prevIsFetching = usePrevious(isFetching);\n\n const initParams = React.useMemo(\n () => ({\n start: platform === Platform.IOS ? -10 : -45,\n max: platform === Platform.IOS ? 50 : 80,\n maxY: platform === Platform.IOS ? 400 : 80,\n refreshing: platform === Platform.IOS ? 36 : 50,\n positionMultiplier: platform === Platform.IOS ? 0.21 : 1,\n }),\n [platform],\n );\n\n const [spinnerY, setSpinnerY] = React.useState(initParams.start);\n const [watching, setWatching] = React.useState(false);\n const [refreshing, setRefreshing] = React.useState(false);\n const [canRefresh, setCanRefresh] = React.useState(false);\n const [touchDown, setTouchDown] = React.useState(false);\n const prevTouchDown = usePrevious(touchDown);\n\n const touchY = React.useRef(0);\n const [contentShift, setContentShift] = React.useState(0);\n const [spinnerProgress, setSpinnerProgress] = React.useState(0);\n\n const onWindowTouchMove = (event: Event) => {\n if (refreshing) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n useGlobalEventListener(document, 'touchmove', onWindowTouchMove, TOUCH_MOVE_EVENT_PARAMS);\n\n const resetRefreshingState = React.useCallback(() => {\n setWatching(false);\n setCanRefresh(false);\n setRefreshing(false);\n setSpinnerY(initParams.start);\n setSpinnerProgress(0);\n setContentShift(0);\n }, [initParams]);\n\n const onRefreshingFinish = React.useCallback(() => {\n if (!touchDown) {\n resetRefreshingState();\n }\n }, [touchDown, resetRefreshingState]);\n\n const { set: setWaitFetchingTimeout, clear: clearWaitFetchingTimeout } = useTimeout(\n onRefreshingFinish,\n 1000,\n );\n\n useIsomorphicLayoutEffect(() => {\n if (prevIsFetching !== undefined && prevIsFetching && !isFetching) {\n onRefreshingFinish();\n }\n }, [prevIsFetching, isFetching, onRefreshingFinish]);\n\n useIsomorphicLayoutEffect(() => {\n if (prevIsFetching !== undefined && !prevIsFetching && isFetching) {\n clearWaitFetchingTimeout();\n }\n }, [isFetching, prevIsFetching, clearWaitFetchingTimeout]);\n\n const runRefreshing = React.useCallback(() => {\n if (!refreshing && onRefresh) {\n // cleanup if the consumer does not start fetching in 1s\n setWaitFetchingTimeout();\n\n setRefreshing(true);\n setSpinnerY((prevSpinnerY) =>\n platform === Platform.IOS ? prevSpinnerY : initParams.refreshing,\n );\n\n onRefresh();\n runTapticImpactOccurred('light');\n }\n }, [refreshing, onRefresh, setWaitFetchingTimeout, platform, initParams.refreshing]);\n\n useIsomorphicLayoutEffect(() => {\n if (prevTouchDown !== undefined && prevTouchDown && !touchDown) {\n if (!refreshing && canRefresh) {\n runRefreshing();\n } else if (refreshing && !isFetching) {\n // only iOS can start refresh before gesture end\n resetRefreshingState();\n } else {\n // refreshing && isFetching: refresh in progress\n // OR !refreshing && !canRefresh: pull was not strong enough\n setSpinnerY(refreshing ? initParams.refreshing : initParams.start);\n setSpinnerProgress(0);\n setContentShift(0);\n }\n }\n }, [\n initParams,\n prevIsFetching,\n isFetching,\n onRefreshingFinish,\n prevTouchDown,\n touchDown,\n refreshing,\n canRefresh,\n runRefreshing,\n ]);\n\n const onTouchStart = (e: TouchEvent) => {\n if (refreshing) {\n cancelEvent(e);\n }\n setTouchDown(true);\n };\n\n const onTouchMove = (e: TouchEvent) => {\n const { isY, shiftY } = e;\n const { start, max } = initParams;\n const pageYOffset = scroll?.getScroll().y;\n\n if (watching && touchDown) {\n cancelEvent(e);\n\n const { positionMultiplier, maxY } = initParams;\n\n const shift = Math.max(0, shiftY - touchY.current);\n\n const currentY = clamp(start + shift * positionMultiplier, start, maxY);\n const progress = currentY > -10 ? Math.abs((currentY + 10) / max) * 80 : 0;\n\n setSpinnerY(currentY);\n setSpinnerProgress(clamp(progress, 0, 80));\n setCanRefresh(progress > 80);\n setContentShift((currentY + 10) * 2.3);\n\n if (progress > 85 && !refreshing && platform === Platform.IOS) {\n runRefreshing();\n }\n } else if (isY && pageYOffset === 0 && shiftY > 0 && !refreshing && touchDown) {\n cancelEvent(e);\n\n touchY.current = shiftY;\n setWatching(true);\n setSpinnerY(start);\n setSpinnerProgress(0);\n }\n };\n\n const onTouchEnd = () => {\n setWatching(false);\n setTouchDown(false);\n };\n\n const spinnerTransform = `translate3d(0, ${spinnerY}px, 0)`;\n let contentTransform = '';\n\n if (platform === Platform.IOS && refreshing && !touchDown) {\n contentTransform = 'translate3d(0, 100px, 0)';\n } else if (platform === Platform.IOS && (contentShift || refreshing)) {\n contentTransform = `translate3d(0, ${contentShift}px, 0)`;\n }\n\n return (\n <TouchRootContext.Provider value={true}>\n <Touch\n {...restProps}\n onStart={onTouchStart}\n onMove={onTouchMove}\n onEnd={onTouchEnd}\n className={classNames(\n styles['PullToRefresh'],\n platform === Platform.IOS && styles['PullToRefresh--ios'],\n watching && styles['PullToRefresh--watching'],\n refreshing && styles['PullToRefresh--refreshing'],\n className,\n )}\n >\n <FixedLayout className={styles['PullToRefresh__controls']} useParentWidth>\n <PullToRefreshSpinner\n style={{\n transform: spinnerTransform,\n WebkitTransform: spinnerTransform,\n opacity: watching || refreshing || canRefresh ? 1 : 0,\n }}\n on={refreshing}\n progress={refreshing ? undefined : spinnerProgress}\n />\n </FixedLayout>\n\n <div\n className={styles['PullToRefresh__content']}\n style={{\n transform: contentTransform,\n WebkitTransform: contentTransform,\n }}\n >\n {children}\n </div>\n </Touch>\n </TouchRootContext.Provider>\n );\n};\n"],"names":["React","classNames","clamp","useGlobalEventListener","usePlatform","usePrevious","useTimeout","useDOM","Platform","runTapticImpactOccurred","useIsomorphicLayoutEffect","useScroll","FixedLayout","Touch","TouchRootContext","PullToRefreshSpinner","cancelEvent","event","originalEvent","preventDefault","cancelable","stopPropagation","TOUCH_MOVE_EVENT_PARAMS","passive","PullToRefresh","children","isFetching","onRefresh","className","restProps","platform","scroll","document","prevIsFetching","initParams","useMemo","start","IOS","max","maxY","refreshing","positionMultiplier","useState","spinnerY","setSpinnerY","watching","setWatching","setRefreshing","canRefresh","setCanRefresh","touchDown","setTouchDown","prevTouchDown","touchY","useRef","contentShift","setContentShift","spinnerProgress","setSpinnerProgress","onWindowTouchMove","resetRefreshingState","useCallback","onRefreshingFinish","set","setWaitFetchingTimeout","clear","clearWaitFetchingTimeout","undefined","runRefreshing","prevSpinnerY","onTouchStart","e","onTouchMove","isY","shiftY","pageYOffset","getScroll","y","shift","Math","current","currentY","progress","abs","onTouchEnd","spinnerTransform","contentTransform","Provider","value","onStart","onMove","onEnd","useParentWidth","style","transform","WebkitTransform","opacity","on","div"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PullToRefresh/PullToRefreshSpinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport styles from './PullToRefresh.module.css';\n\nfunction calcStrokeDashOffset(value: number, radius: number) {\n const progress = value / 100;\n return 2 * Math.PI * radius * (1 - progress);\n}\n\nexport interface PullToRefreshSpinnerProps extends React.HTMLAttributes<HTMLDivElement> {\n 'size'?: number;\n 'strokeWidth'?: number;\n 'on'?: boolean;\n 'progress'?: number;\n 'aria-label'?: string;\n}\n\nexport const PullToRefreshSpinner = ({\n on = true,\n size = 24,\n strokeWidth = 2.5,\n style,\n progress = 0,\n 'aria-label': ariaLabel = 'Пожалуйста, подождите...',\n}: PullToRefreshSpinnerProps) => {\n const radius = 0.5 * size - 0.5 * strokeWidth;\n const dasharray = 2 * Math.PI * radius;\n const circleCenter = 0.5 * size;\n\n const dashoffset = calcStrokeDashOffset(on ? 80 : progress, radius);\n\n return (\n <div\n className={classNames(\n styles['PullToRefresh__spinner'],\n on && styles['PullToRefresh__spinner--on'],\n )}\n style={style}\n aria-label={on ? ariaLabel : undefined}\n >\n <svg\n role=\"presentation\"\n className={styles['PullToRefresh__spinner-self']}\n style={{\n width: size,\n height: size,\n }}\n viewBox={`0 0 ${size} ${size}`}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g\n style={{\n width: size,\n height: size,\n transformOrigin: `${circleCenter}px ${circleCenter}px`,\n }}\n >\n <circle\n className={styles['PullToRefresh__spinner-path']}\n fill=\"none\"\n strokeDasharray={dasharray}\n strokeDashoffset={dashoffset}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n cx={circleCenter}\n cy={circleCenter}\n r={radius}\n />\n </g>\n </svg>\n </div>\n );\n};\n"],"names":["React","classNames","calcStrokeDashOffset","value","radius","progress","Math","PI","PullToRefreshSpinner","on","size","strokeWidth","style","ariaLabel","dasharray","circleCenter","dashoffset","div","className","aria-label","undefined","svg","role","width","height","viewBox","xmlns","g","transformOrigin","circle","fill","strokeDasharray","strokeDashoffset","strokeLinecap","cx","cy","r"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAG7C,SAASC,qBAAqBC,KAAa,EAAEC,MAAc;IACzD,IAAMC,WAAWF,QAAQ;IACzB,OAAO,IAAIG,KAAKC,KAAKH,SAAU,CAAA,IAAIC,QAAO;AAC5C;AAUA,OAAO,IAAMG,uBAAuB;0BAClCC,IAAAA,4BAAK,sCACLC,MAAAA,gCAAO,6CACPC,aAAAA,8CAAc,0BACdC,cAAAA,+BACAP,UAAAA,wCAAW,qBACGQ,YAAd,eAAcA,YAAAA,iBAAY,6BAAZA;IAEd,IAAMT,SAAS,MAAMM,OAAO,MAAMC;IAClC,IAAMG,YAAY,IAAIR,KAAKC,KAAKH;IAChC,IAAMW,eAAe,MAAML;IAE3B,IAAMM,aAAad,qBAAqBO,KAAK,KAAKJ,UAAUD;IAE5D,qBACE,oBAACa;QACCC,WAAWjB,yCAETQ;QAEFG,OAAOA;QACPO,cAAYV,KAAKI,YAAYO;qBAE7B,oBAACC;QACCC,MAAK;QACLJ,SAAS;QACTN,OAAO;YACLW,OAAOb;YACPc,QAAQd;QACV;QACAe,SAAS,AAAC,OAAcf,OAARA,MAAK,KAAQ,OAALA;QACxBgB,OAAM;qBAEN,oBAACC;QACCf,OAAO;YACLW,OAAOb;YACPc,QAAQd;YACRkB,iBAAiB,AAAC,GAAoBb,OAAlBA,cAAa,OAAkB,OAAbA,cAAa;QACrD;qBAEA,oBAACc;QACCX,SAAS;QACTY,MAAK;QACLC,iBAAiBjB;QACjBkB,kBAAkBhB;QAClBL,aAAaA;QACbsB,eAAc;QACdC,IAAInB;QACJoB,IAAIpB;QACJqB,GAAGhC;;AAMf,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/PullToRefresh/PullToRefreshSpinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport styles from './PullToRefresh.module.css';\n\nfunction calcStrokeDashOffset(value: number, radius: number) {\n const progress = value / 100;\n return 2 * Math.PI * radius * (1 - progress);\n}\n\nexport interface PullToRefreshSpinnerProps extends React.HTMLAttributes<HTMLDivElement> {\n 'size'?: number;\n 'strokeWidth'?: number;\n 'on'?: boolean;\n 'progress'?: number;\n 'aria-label'?: string;\n}\n\nexport const PullToRefreshSpinner = ({\n on = true,\n size = 24,\n strokeWidth = 2.5,\n style,\n progress = 0,\n 'aria-label': ariaLabel = 'Пожалуйста, подождите...',\n}: PullToRefreshSpinnerProps) => {\n const radius = 0.5 * size - 0.5 * strokeWidth;\n const dasharray = 2 * Math.PI * radius;\n const circleCenter = 0.5 * size;\n\n const dashoffset = calcStrokeDashOffset(on ? 80 : progress, radius);\n\n return (\n <div\n className={classNames(\n styles['PullToRefresh__spinner'],\n on && styles['PullToRefresh__spinner--on'],\n )}\n style={style}\n aria-label={on ? ariaLabel : undefined}\n >\n <svg\n role=\"presentation\"\n className={styles['PullToRefresh__spinner-self']}\n style={{\n width: size,\n height: size,\n }}\n viewBox={`0 0 ${size} ${size}`}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g\n style={{\n width: size,\n height: size,\n transformOrigin: `${circleCenter}px ${circleCenter}px`,\n }}\n >\n <circle\n className={styles['PullToRefresh__spinner-path']}\n fill=\"none\"\n strokeDasharray={dasharray}\n strokeDashoffset={dashoffset}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n cx={circleCenter}\n cy={circleCenter}\n r={radius}\n />\n </g>\n </svg>\n </div>\n );\n};\n"],"names":["React","classNames","calcStrokeDashOffset","value","radius","progress","Math","PI","PullToRefreshSpinner","on","size","strokeWidth","style","ariaLabel","dasharray","circleCenter","dashoffset","div","className","aria-label","undefined","svg","role","width","height","viewBox","xmlns","g","transformOrigin","circle","fill","strokeDasharray","strokeDashoffset","strokeLinecap","cx","cy","r"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAG7C,SAASC,qBAAqBC,KAAa,EAAEC,MAAc;IACzD,IAAMC,WAAWF,QAAQ;IACzB,OAAO,IAAIG,KAAKC,EAAE,GAAGH,SAAU,CAAA,IAAIC,QAAO;AAC5C;AAUA,OAAO,IAAMG,uBAAuB;0BAClCC,IAAAA,4BAAK,sCACLC,MAAAA,gCAAO,6CACPC,aAAAA,8CAAc,0BACdC,cAAAA,+BACAP,UAAAA,wCAAW,qBACGQ,YAAd,eAAcA,YAAAA,iBAAY,6BAAZA;IAEd,IAAMT,SAAS,MAAMM,OAAO,MAAMC;IAClC,IAAMG,YAAY,IAAIR,KAAKC,EAAE,GAAGH;IAChC,IAAMW,eAAe,MAAML;IAE3B,IAAMM,aAAad,qBAAqBO,KAAK,KAAKJ,UAAUD;IAE5D,qBACE,oBAACa;QACCC,WAAWjB,yCAETQ;QAEFG,OAAOA;QACPO,cAAYV,KAAKI,YAAYO;qBAE7B,oBAACC;QACCC,MAAK;QACLJ,SAAS;QACTN,OAAO;YACLW,OAAOb;YACPc,QAAQd;QACV;QACAe,SAAS,AAAC,OAAcf,OAARA,MAAK,KAAQ,OAALA;QACxBgB,OAAM;qBAEN,oBAACC;QACCf,OAAO;YACLW,OAAOb;YACPc,QAAQd;YACRkB,iBAAiB,AAAC,GAAoBb,OAAlBA,cAAa,OAAkB,OAAbA,cAAa;QACrD;qBAEA,oBAACc;QACCX,SAAS;QACTY,MAAK;QACLC,iBAAiBjB;QACjBkB,kBAAkBhB;QAClBL,aAAaA;QACbsB,eAAc;QACdC,IAAInB;QACJoB,IAAIpB;QACJqB,GAAGhC;;AAMf,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { HasRef, HasRootRef } from '../../types';\nimport { ACTIVE_EFFECT_DELAY, Tappable } from '../Tappable/Tappable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Radio.module.css';\n\nconst sizeYClassNames = {\n none: styles['Radio--sizeY-none'],\n [SizeType.COMPACT]: styles['Radio--sizeY-compact'],\n};\n\nconst RadioIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" aria-hidden {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"11\" stroke=\"currentColor\" strokeWidth=\"2\" fill=\"none\" />\n <circle cx=\"12\" cy=\"12\" r=\"7.5\" className={styles['Radio__pin']} fill=\"currentColor\" />\n </svg>\n );\n};\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLLabelElement> {\n description?: React.ReactNode;\n titleAfter?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Radio\n */\nexport const Radio = ({\n children,\n description,\n style,\n className,\n getRootRef,\n titleAfter,\n getRef,\n ...restProps\n}: RadioProps) => {\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Tappable\n Component=\"label\"\n style={style}\n className={classNames(\n styles['Radio'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n className,\n )}\n activeEffectDelay={platform === Platform.IOS ? 100 : ACTIVE_EFFECT_DELAY}\n disabled={restProps.disabled}\n getRootRef={getRootRef}\n >\n <VisuallyHidden\n {...restProps}\n Component=\"input\"\n type=\"radio\"\n getRootRef={getRef}\n className={styles['Radio__input']}\n />\n <div className={styles['Radio__container']}>\n <RadioIcon className={styles['Radio__icon']} />\n <div className={styles['Radio__content']}>\n <div className={styles['Radio__title']}>\n <span>{children}</span>\n <div className={styles['Radio__titleAfter']}>{titleAfter}</div>\n </div>\n {hasReactNode(description) && (\n <Footnote className={styles['Radio__description']}>{description}</Footnote>\n )}\n </div>\n </div>\n </Tappable>\n );\n};\n"],"names":["React","classNames","hasReactNode","useAdaptivity","usePlatform","SizeType","Platform","ACTIVE_EFFECT_DELAY","Tappable","Footnote","VisuallyHidden","sizeYClassNames","none","COMPACT","RadioIcon","props","svg","xmlns","viewBox","aria-hidden","circle","cx","cy","r","stroke","strokeWidth","fill","className","Radio","children","description","style","getRootRef","titleAfter","getRef","restProps","platform","sizeY","Component","REGULAR","activeEffectDelay","IOS","disabled","type","div","span"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,mBAAmB,EAAEC,QAAQ,QAAQ,uBAAuB;AACrE,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,cAAc,QAAQ,mCAAmC;AAGlE,IAAMC;IACJC,IAAI;GACHP,SAASQ;AAGZ,IAAMC,YAAY,SAACC;IACjB,qBACE,oBAACC;QAAIC,OAAM;QAA6BC,SAAQ;QAAYC,eAAAA;OAAgBJ,sBAC1E,oBAACK;QAAOC,IAAG;QAAKC,IAAG;QAAKC,GAAE;QAAKC,QAAO;QAAeC,aAAY;QAAIC,MAAK;sBAC1E,oBAACN;QAAOC,IAAG;QAAKC,IAAG;QAAKC,GAAE;QAAMI,SAAS;QAAwBD,MAAK;;AAG5E;AAUA;;CAEC,GACD,OAAO,IAAME,QAAQ;QACnBC,kBAAAA,UACAC,qBAAAA,aACAC,eAAAA,OACAJ,mBAAAA,WACAK,oBAAAA,YACAC,oBAAAA,YACAC,gBAAAA,QACGC;QAPHN;QACAC;QACAC;QACAJ;QACAK;QACAC;QACAC;;IAGA,IAAME,WAAWhC;IACjB,IAA2BD,iBAAAA,wCAAAA,eAAnBkC,OAAAA,0CAAQ;IAEhB,qBACE,oBAAC7B;QACC8B,WAAU;QACVP,OAAOA;QACPJ,WAAW1B,wBAEToC,UAAUhC,SAASkC,WAAW5B,eAAe,CAAC0B,MAAM,EACpDV;QAEFa,mBAAmBJ,aAAa9B,SAASmC,MAAM,MAAMlC;QACrDmC,UAAUP,UAAUO;QACpBV,YAAYA;qBAEZ,oBAACtB,wDACKyB;QACJG,WAAU;QACVK,MAAK;QACLX,YAAYE;QACZP,SAAS;uBAEX,oBAACiB;QAAIjB,SAAS;qBACZ,oBAACb;QAAUa,SAAS;sBACpB,oBAACiB;QAAIjB,SAAS;qBACZ,oBAACiB;QAAIjB,SAAS;qBACZ,oBAACkB,cAAMhB,yBACP,oBAACe;QAAIjB,SAAS;OAAgCM,cAE/C/B,aAAa4B,8BACZ,oBAACrB;QAASkB,SAAS;OAAiCG;AAMhE,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { HasRef, HasRootRef } from '../../types';\nimport { ACTIVE_EFFECT_DELAY, Tappable } from '../Tappable/Tappable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Radio.module.css';\n\nconst sizeYClassNames = {\n none: styles['Radio--sizeY-none'],\n [SizeType.COMPACT]: styles['Radio--sizeY-compact'],\n};\n\nconst RadioIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" aria-hidden {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"11\" stroke=\"currentColor\" strokeWidth=\"2\" fill=\"none\" />\n <circle cx=\"12\" cy=\"12\" r=\"7.5\" className={styles['Radio__pin']} fill=\"currentColor\" />\n </svg>\n );\n};\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLLabelElement> {\n description?: React.ReactNode;\n titleAfter?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Radio\n */\nexport const Radio = ({\n children,\n description,\n style,\n className,\n getRootRef,\n titleAfter,\n getRef,\n ...restProps\n}: RadioProps) => {\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Tappable\n Component=\"label\"\n style={style}\n className={classNames(\n styles['Radio'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n className,\n )}\n activeEffectDelay={platform === Platform.IOS ? 100 : ACTIVE_EFFECT_DELAY}\n disabled={restProps.disabled}\n getRootRef={getRootRef}\n >\n <VisuallyHidden\n {...restProps}\n Component=\"input\"\n type=\"radio\"\n getRootRef={getRef}\n className={styles['Radio__input']}\n />\n <div className={styles['Radio__container']}>\n <RadioIcon className={styles['Radio__icon']} />\n <div className={styles['Radio__content']}>\n <div className={styles['Radio__title']}>\n <span>{children}</span>\n <div className={styles['Radio__titleAfter']}>{titleAfter}</div>\n </div>\n {hasReactNode(description) && (\n <Footnote className={styles['Radio__description']}>{description}</Footnote>\n )}\n </div>\n </div>\n </Tappable>\n );\n};\n"],"names":["React","classNames","hasReactNode","useAdaptivity","usePlatform","SizeType","Platform","ACTIVE_EFFECT_DELAY","Tappable","Footnote","VisuallyHidden","sizeYClassNames","none","COMPACT","RadioIcon","props","svg","xmlns","viewBox","aria-hidden","circle","cx","cy","r","stroke","strokeWidth","fill","className","Radio","children","description","style","getRootRef","titleAfter","getRef","restProps","platform","sizeY","Component","REGULAR","activeEffectDelay","IOS","disabled","type","div","span"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,mBAAmB,EAAEC,QAAQ,QAAQ,uBAAuB;AACrE,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,cAAc,QAAQ,mCAAmC;AAGlE,IAAMC;IACJC,IAAI;GACHP,SAASQ,OAAO;AAGnB,IAAMC,YAAY,SAACC;IACjB,qBACE,oBAACC;QAAIC,OAAM;QAA6BC,SAAQ;QAAYC,eAAAA;OAAgBJ,sBAC1E,oBAACK;QAAOC,IAAG;QAAKC,IAAG;QAAKC,GAAE;QAAKC,QAAO;QAAeC,aAAY;QAAIC,MAAK;sBAC1E,oBAACN;QAAOC,IAAG;QAAKC,IAAG;QAAKC,GAAE;QAAMI,SAAS;QAAwBD,MAAK;;AAG5E;AAUA;;CAEC,GACD,OAAO,IAAME,QAAQ;QACnBC,kBAAAA,UACAC,qBAAAA,aACAC,eAAAA,OACAJ,mBAAAA,WACAK,oBAAAA,YACAC,oBAAAA,YACAC,gBAAAA,QACGC;QAPHN;QACAC;QACAC;QACAJ;QACAK;QACAC;QACAC;;IAGA,IAAME,WAAWhC;IACjB,IAA2BD,iBAAAA,wCAAAA,eAAnBkC,OAAAA,0CAAQ;IAEhB,qBACE,oBAAC7B;QACC8B,WAAU;QACVP,OAAOA;QACPJ,WAAW1B,wBAEToC,UAAUhC,SAASkC,OAAO,IAAI5B,eAAe,CAAC0B,MAAM,EACpDV;QAEFa,mBAAmBJ,aAAa9B,SAASmC,GAAG,GAAG,MAAMlC;QACrDmC,UAAUP,UAAUO,QAAQ;QAC5BV,YAAYA;qBAEZ,oBAACtB,wDACKyB;QACJG,WAAU;QACVK,MAAK;QACLX,YAAYE;QACZP,SAAS;uBAEX,oBAACiB;QAAIjB,SAAS;qBACZ,oBAACb;QAAUa,SAAS;sBACpB,oBAACiB;QAAIjB,SAAS;qBACZ,oBAACiB;QAAIjB,SAAS;qBACZ,oBAACkB,cAAMhB,yBACP,oBAACe;QAAIjB,SAAS;OAAgCM,cAE/C/B,aAAa4B,8BACZ,oBAACrB;QAASkB,SAAS;OAAiCG;AAMhE,EAAE"}
@@ -30,8 +30,8 @@ import { Tappable } from "../Tappable/Tappable";
30
30
  });
31
31
  var onRemoveTransitionEnd = function() {
32
32
  if (removeOffset > 0) {
33
- var _removeButtonRef_current;
34
- removeButtonRef === null || removeButtonRef === void 0 ? void 0 : (_removeButtonRef_current = removeButtonRef.current) === null || _removeButtonRef_current === void 0 ? void 0 : _removeButtonRef_current.focus();
33
+ var _removeButtonRef_current, _removeButtonRef;
34
+ (_removeButtonRef = removeButtonRef) === null || _removeButtonRef === void 0 ? void 0 : (_removeButtonRef_current = _removeButtonRef.current) === null || _removeButtonRef_current === void 0 ? void 0 : _removeButtonRef_current.focus();
35
35
  } else {
36
36
  disabledRef.current = true;
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Removable/Removable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Cancel } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useDOM } from '../../lib/dom';\nimport { Platform } from '../../lib/platform';\nimport { getTitleFromChildren } from '../../lib/utils';\nimport { HasChildren, HasRootRef } from '../../types';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Tappable } from '../Tappable/Tappable';\nimport styles from './Removable.module.css';\n\nexport interface RemovableProps {\n /**\n * iOS only. Текст в выезжающей кнопке для удаления ячейки.\n */\n removePlaceholder?: React.ReactNode;\n /**\n * Коллбэк срабатывает при клике на контрол удаления.\n */\n onRemove?: (e: React.MouseEvent, rootEl?: HTMLElement | null) => void;\n}\n\ninterface RemovableIosOwnProps extends RemovableProps, HasChildren {\n removePlaceholderString?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/RemovableIos\n */\nconst RemovableIos = ({\n onRemove,\n removePlaceholder,\n removePlaceholderString,\n children,\n}: RemovableIosOwnProps) => {\n const { window } = useDOM();\n\n const removeButtonRef = React.useRef<HTMLElement>(null);\n const disabledRef = React.useRef(true);\n const [removeOffset, updateRemoveOffset] = React.useState(0);\n\n useGlobalEventListener(\n window,\n 'click',\n () => {\n if (removeOffset > 0) {\n updateRemoveOffset(0);\n }\n },\n { capture: true },\n );\n\n const onRemoveTransitionEnd = () => {\n if (removeOffset > 0) {\n removeButtonRef?.current?.focus();\n } else {\n disabledRef.current = true;\n }\n };\n\n const onRemoveActivateClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!removeButtonRef.current) {\n return;\n }\n const { offsetWidth } = removeButtonRef.current;\n disabledRef.current = false;\n updateRemoveOffset(offsetWidth);\n };\n\n return (\n <div\n className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}\n style={{ transform: `translateX(-${removeOffset ?? 0}px)` }}\n onTransitionEnd={onRemoveTransitionEnd}\n >\n <IconButton\n hasActive={false}\n hasHover={false}\n aria-label={removePlaceholderString}\n className={classNames(styles['Removable__action'], styles['Removable__toggle'])}\n onClick={onRemoveActivateClick}\n disabled={removeOffset > 0}\n >\n <i className={styles['Removable__toggle-in']} role=\"presentation\" />\n </IconButton>\n {children}\n\n <span className={styles['Removable__offset']} aria-hidden />\n\n <Tappable\n Component=\"button\"\n hasActive={false}\n hasHover={false}\n disabled={disabledRef.current}\n getRootRef={removeButtonRef}\n className={styles['Removable__remove']}\n onClick={onRemove}\n >\n <span className={styles['Removable__remove-in']}>{removePlaceholder}</span>\n </Tappable>\n </div>\n );\n};\n\ninterface RemovableOwnProps\n extends React.HTMLAttributes<HTMLDivElement>,\n RemovableProps,\n HasRootRef<HTMLDivElement> {\n /**\n * Расположение кнопки удаления.\n */\n align?: 'start' | 'center';\n /**\n * Скрывает кнопку, но оставляет отступ.\n * @since 5.4.0\n */\n indent?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Removable\n */\nexport const Removable = ({\n getRootRef,\n children,\n onRemove = noop,\n removePlaceholder = 'Удалить',\n align = 'center',\n className,\n indent = false,\n ...restProps\n}: RemovableOwnProps) => {\n const platform = usePlatform();\n\n const ref = useExternRef(getRootRef);\n\n const onRemoveClick = (e: React.MouseEvent) => {\n e.preventDefault();\n onRemove(e);\n };\n\n const removePlaceholderString: string = getTitleFromChildren(removePlaceholder);\n\n return (\n <div\n {...restProps}\n ref={ref}\n className={classNames(\n platform === Platform.IOS && styles['Removable--ios'],\n align === 'start' && styles['Removable--align-start'],\n indent && styles['Removable--indent'],\n className,\n )}\n >\n {platform !== Platform.IOS && (\n <div className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}>\n {children}\n\n <IconButton\n activeMode=\"opacity\"\n hoverMode=\"opacity\"\n className={styles['Removable__action']}\n onClick={onRemoveClick}\n aria-label={removePlaceholderString}\n >\n <Icon24Cancel role=\"presentation\" />\n </IconButton>\n\n <span className={styles['Removable__offset']} aria-hidden />\n </div>\n )}\n\n {platform === Platform.IOS && (\n <RemovableIos\n onRemove={onRemoveClick}\n removePlaceholder={removePlaceholder}\n removePlaceholderString={removePlaceholderString}\n >\n {children}\n </RemovableIos>\n )}\n </div>\n );\n};\n"],"names":["React","Icon24Cancel","classNames","noop","useExternRef","useGlobalEventListener","usePlatform","useDOM","Platform","getTitleFromChildren","IconButton","Tappable","RemovableIos","onRemove","removePlaceholder","removePlaceholderString","children","window","removeButtonRef","useRef","disabledRef","useState","removeOffset","updateRemoveOffset","capture","onRemoveTransitionEnd","current","focus","onRemoveActivateClick","e","stopPropagation","offsetWidth","div","className","style","transform","onTransitionEnd","hasActive","hasHover","aria-label","onClick","disabled","i","role","span","aria-hidden","Component","getRootRef","Removable","align","indent","restProps","platform","ref","onRemoveClick","preventDefault","IOS","activeMode","hoverMode"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Removable/Removable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Cancel } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useDOM } from '../../lib/dom';\nimport { Platform } from '../../lib/platform';\nimport { getTitleFromChildren } from '../../lib/utils';\nimport { HasChildren, HasRootRef } from '../../types';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Tappable } from '../Tappable/Tappable';\nimport styles from './Removable.module.css';\n\nexport interface RemovableProps {\n /**\n * iOS only. Текст в выезжающей кнопке для удаления ячейки.\n */\n removePlaceholder?: React.ReactNode;\n /**\n * Коллбэк срабатывает при клике на контрол удаления.\n */\n onRemove?: (e: React.MouseEvent, rootEl?: HTMLElement | null) => void;\n}\n\ninterface RemovableIosOwnProps extends RemovableProps, HasChildren {\n removePlaceholderString?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/RemovableIos\n */\nconst RemovableIos = ({\n onRemove,\n removePlaceholder,\n removePlaceholderString,\n children,\n}: RemovableIosOwnProps) => {\n const { window } = useDOM();\n\n const removeButtonRef = React.useRef<HTMLElement>(null);\n const disabledRef = React.useRef(true);\n const [removeOffset, updateRemoveOffset] = React.useState(0);\n\n useGlobalEventListener(\n window,\n 'click',\n () => {\n if (removeOffset > 0) {\n updateRemoveOffset(0);\n }\n },\n { capture: true },\n );\n\n const onRemoveTransitionEnd = () => {\n if (removeOffset > 0) {\n removeButtonRef?.current?.focus();\n } else {\n disabledRef.current = true;\n }\n };\n\n const onRemoveActivateClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!removeButtonRef.current) {\n return;\n }\n const { offsetWidth } = removeButtonRef.current;\n disabledRef.current = false;\n updateRemoveOffset(offsetWidth);\n };\n\n return (\n <div\n className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}\n style={{ transform: `translateX(-${removeOffset ?? 0}px)` }}\n onTransitionEnd={onRemoveTransitionEnd}\n >\n <IconButton\n hasActive={false}\n hasHover={false}\n aria-label={removePlaceholderString}\n className={classNames(styles['Removable__action'], styles['Removable__toggle'])}\n onClick={onRemoveActivateClick}\n disabled={removeOffset > 0}\n >\n <i className={styles['Removable__toggle-in']} role=\"presentation\" />\n </IconButton>\n {children}\n\n <span className={styles['Removable__offset']} aria-hidden />\n\n <Tappable\n Component=\"button\"\n hasActive={false}\n hasHover={false}\n disabled={disabledRef.current}\n getRootRef={removeButtonRef}\n className={styles['Removable__remove']}\n onClick={onRemove}\n >\n <span className={styles['Removable__remove-in']}>{removePlaceholder}</span>\n </Tappable>\n </div>\n );\n};\n\ninterface RemovableOwnProps\n extends React.HTMLAttributes<HTMLDivElement>,\n RemovableProps,\n HasRootRef<HTMLDivElement> {\n /**\n * Расположение кнопки удаления.\n */\n align?: 'start' | 'center';\n /**\n * Скрывает кнопку, но оставляет отступ.\n * @since 5.4.0\n */\n indent?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Removable\n */\nexport const Removable = ({\n getRootRef,\n children,\n onRemove = noop,\n removePlaceholder = 'Удалить',\n align = 'center',\n className,\n indent = false,\n ...restProps\n}: RemovableOwnProps) => {\n const platform = usePlatform();\n\n const ref = useExternRef(getRootRef);\n\n const onRemoveClick = (e: React.MouseEvent) => {\n e.preventDefault();\n onRemove(e);\n };\n\n const removePlaceholderString: string = getTitleFromChildren(removePlaceholder);\n\n return (\n <div\n {...restProps}\n ref={ref}\n className={classNames(\n platform === Platform.IOS && styles['Removable--ios'],\n align === 'start' && styles['Removable--align-start'],\n indent && styles['Removable--indent'],\n className,\n )}\n >\n {platform !== Platform.IOS && (\n <div className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}>\n {children}\n\n <IconButton\n activeMode=\"opacity\"\n hoverMode=\"opacity\"\n className={styles['Removable__action']}\n onClick={onRemoveClick}\n aria-label={removePlaceholderString}\n >\n <Icon24Cancel role=\"presentation\" />\n </IconButton>\n\n <span className={styles['Removable__offset']} aria-hidden />\n </div>\n )}\n\n {platform === Platform.IOS && (\n <RemovableIos\n onRemove={onRemoveClick}\n removePlaceholder={removePlaceholder}\n removePlaceholderString={removePlaceholderString}\n >\n {children}\n </RemovableIos>\n )}\n </div>\n );\n};\n"],"names":["React","Icon24Cancel","classNames","noop","useExternRef","useGlobalEventListener","usePlatform","useDOM","Platform","getTitleFromChildren","IconButton","Tappable","RemovableIos","onRemove","removePlaceholder","removePlaceholderString","children","window","removeButtonRef","useRef","disabledRef","useState","removeOffset","updateRemoveOffset","capture","onRemoveTransitionEnd","current","focus","onRemoveActivateClick","e","stopPropagation","offsetWidth","div","className","style","transform","onTransitionEnd","hasActive","hasHover","aria-label","onClick","disabled","i","role","span","aria-hidden","Component","getRootRef","Removable","align","indent","restProps","platform","ref","onRemoveClick","preventDefault","IOS","activeMode","hoverMode"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/RichCell/RichCell.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Tappable, TappableProps } from '../Tappable/Tappable';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { RichCellIcon } from './RichCellIcon/RichCellIcon';\nimport styles from './RichCell.module.css';\n\nconst sizeYClassNames = {\n none: styles['RichCell--sizeY-none'],\n [SizeType.COMPACT]: styles['RichCell--sizeY-compact'],\n};\n\nexport interface RichCellProps extends TappableProps {\n /**\n * Контейнер для текста над `children`.\n */\n subhead?: React.ReactNode;\n /**\n * Контейнер для текста под `children`.\n */\n text?: React.ReactNode;\n /**\n * Контейнер для текста под `text`.\n */\n caption?: React.ReactNode;\n /**\n * Контейнер для контента под `caption`. Например `<UsersStack size=\"m\" />`.\n */\n bottom?: React.ReactNode;\n /**\n * Кнопки-действия. Принимает [`Button`](https://vkcom.github.io/VKUI/#/Button) с параметрами:\n *\n * - `mode=\"primary\" size=\"s\"`\n * - `mode=\"secondary\" size=\"s\"`\n *\n * Для набора кнопок используйте [`ButtonGroup`](https://vkcom.github.io/VKUI/#/ButtonGroup) с параметрами:\n *\n * - `mode=\"horizontal\" gap=\"s\" stretched`\n */\n actions?: React.ReactNode;\n /**\n * `<Avatar size={40|48|72} />`.\n */\n before?: React.ReactNode;\n /**\n * Иконка 28 или текст.\n */\n after?: React.ReactNode;\n /**\n * Текст под `after`.\n */\n afterCaption?: React.ReactNode;\n /**\n * Убирает анимацию нажатия.\n */\n disabled?: boolean;\n /**\n * Включает многострочный режим для `subhead`, `children`, `text` и `caption`.\n */\n multiline?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/RichCell\n */\nexport const RichCell = ({\n subhead,\n children,\n text,\n caption,\n before,\n after,\n afterCaption,\n bottom,\n actions,\n multiline,\n className,\n ...restProps\n}: RichCellProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Tappable\n {...restProps}\n className={classNames(\n styles['RichCell'],\n !multiline && styles['RichCell--text-ellipsis'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n className,\n )}\n >\n {before && <div className={styles['RichCell__before']}>{before}</div>}\n <div className={styles['RichCell__in']}>\n <div className={styles['RichCell__content']}>\n <div className={styles['RichCell__content-before']}>\n {subhead && (\n <Subhead Component=\"div\" className={styles['RichCell__subhead']}>\n {subhead}\n </Subhead>\n )}\n <div className={styles['RichCell__children']}>{children}</div>\n {text && <div className={styles['RichCell__text']}>{text}</div>}\n {caption && (\n <Subhead Component=\"div\" className={styles['RichCell__caption']}>\n {caption}\n </Subhead>\n )}\n </div>\n {(after || afterCaption) && (\n <div className={styles['RichCell__content-after']}>\n {after && <div className={styles['RichCell__after-children']}>{after}</div>}\n {afterCaption && (\n <div className={styles['RichCell__after-caption']}>{afterCaption}</div>\n )}\n </div>\n )}\n </div>\n {bottom && <div className={styles['RichCell__bottom']}>{bottom}</div>}\n {actions && <div className={styles['RichCell__actions']}>{actions}</div>}\n </div>\n </Tappable>\n );\n};\n\nRichCell.Icon = RichCellIcon;\n"],"names":["React","classNames","useAdaptivity","SizeType","Tappable","Subhead","RichCellIcon","sizeYClassNames","none","COMPACT","RichCell","subhead","children","text","caption","before","after","afterCaption","bottom","actions","multiline","className","restProps","sizeY","REGULAR","div","Component","Icon"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAuB,uBAAuB;AAC/D,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,YAAY,QAAQ,8BAA8B;AAG3D,IAAMC;IACJC,IAAI;GACHL,SAASM;AAqDZ;;CAEC,GACD,OAAO,IAAMC,WAAW;QACtBC,iBAAAA,SACAC,kBAAAA,UACAC,cAAAA,MACAC,iBAAAA,SACAC,gBAAAA,QACAC,eAAAA,OACAC,sBAAAA,cACAC,gBAAAA,QACAC,iBAAAA,SACAC,mBAAAA,WACAC,mBAAAA,WACGC;QAXHX;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAA2BnB,iBAAAA,wCAAAA,eAAnBqB,OAAAA,0CAAQ;IAEhB,qBACE,oBAACnB,kDACKkB;QACJD,WAAWpB,2BAET,CAACmB,4CACDG,UAAUpB,SAASqB,WAAWjB,eAAe,CAACgB,MAAM,EACpDF;QAGDN,wBAAU,oBAACU;QAAIJ,SAAS;OAA+BN,uBACxD,oBAACU;QAAIJ,SAAS;qBACZ,oBAACI;QAAIJ,SAAS;qBACZ,oBAACI;QAAIJ,SAAS;OACXV,yBACC,oBAACN;QAAQqB,WAAU;QAAML,SAAS;OAC/BV,wBAGL,oBAACc;QAAIJ,SAAS;OAAiCT,WAC9CC,sBAAQ,oBAACY;QAAIJ,SAAS;OAA6BR,OACnDC,yBACC,oBAACT;QAAQqB,WAAU;QAAML,SAAS;OAC/BP,WAIN,AAACE,CAAAA,SAASC,YAAW,mBACpB,oBAACQ;QAAIJ,SAAS;OACXL,uBAAS,oBAACS;QAAIJ,SAAS;OAAuCL,QAC9DC,8BACC,oBAACQ;QAAIJ,SAAS;OAAsCJ,iBAK3DC,wBAAU,oBAACO;QAAIJ,SAAS;OAA+BH,SACvDC,yBAAW,oBAACM;QAAIJ,SAAS;OAAgCF;AAIlE,EAAE;AAEFT,SAASiB,OAAOrB"}
1
+ {"version":3,"sources":["../../../src/components/RichCell/RichCell.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Tappable, TappableProps } from '../Tappable/Tappable';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { RichCellIcon } from './RichCellIcon/RichCellIcon';\nimport styles from './RichCell.module.css';\n\nconst sizeYClassNames = {\n none: styles['RichCell--sizeY-none'],\n [SizeType.COMPACT]: styles['RichCell--sizeY-compact'],\n};\n\nexport interface RichCellProps extends TappableProps {\n /**\n * Контейнер для текста над `children`.\n */\n subhead?: React.ReactNode;\n /**\n * Контейнер для текста под `children`.\n */\n text?: React.ReactNode;\n /**\n * Контейнер для текста под `text`.\n */\n caption?: React.ReactNode;\n /**\n * Контейнер для контента под `caption`. Например `<UsersStack size=\"m\" />`.\n */\n bottom?: React.ReactNode;\n /**\n * Кнопки-действия. Принимает [`Button`](https://vkcom.github.io/VKUI/#/Button) с параметрами:\n *\n * - `mode=\"primary\" size=\"s\"`\n * - `mode=\"secondary\" size=\"s\"`\n *\n * Для набора кнопок используйте [`ButtonGroup`](https://vkcom.github.io/VKUI/#/ButtonGroup) с параметрами:\n *\n * - `mode=\"horizontal\" gap=\"s\" stretched`\n */\n actions?: React.ReactNode;\n /**\n * `<Avatar size={40|48|72} />`.\n */\n before?: React.ReactNode;\n /**\n * Иконка 28 или текст.\n */\n after?: React.ReactNode;\n /**\n * Текст под `after`.\n */\n afterCaption?: React.ReactNode;\n /**\n * Убирает анимацию нажатия.\n */\n disabled?: boolean;\n /**\n * Включает многострочный режим для `subhead`, `children`, `text` и `caption`.\n */\n multiline?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/RichCell\n */\nexport const RichCell = ({\n subhead,\n children,\n text,\n caption,\n before,\n after,\n afterCaption,\n bottom,\n actions,\n multiline,\n className,\n ...restProps\n}: RichCellProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Tappable\n {...restProps}\n className={classNames(\n styles['RichCell'],\n !multiline && styles['RichCell--text-ellipsis'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n className,\n )}\n >\n {before && <div className={styles['RichCell__before']}>{before}</div>}\n <div className={styles['RichCell__in']}>\n <div className={styles['RichCell__content']}>\n <div className={styles['RichCell__content-before']}>\n {subhead && (\n <Subhead Component=\"div\" className={styles['RichCell__subhead']}>\n {subhead}\n </Subhead>\n )}\n <div className={styles['RichCell__children']}>{children}</div>\n {text && <div className={styles['RichCell__text']}>{text}</div>}\n {caption && (\n <Subhead Component=\"div\" className={styles['RichCell__caption']}>\n {caption}\n </Subhead>\n )}\n </div>\n {(after || afterCaption) && (\n <div className={styles['RichCell__content-after']}>\n {after && <div className={styles['RichCell__after-children']}>{after}</div>}\n {afterCaption && (\n <div className={styles['RichCell__after-caption']}>{afterCaption}</div>\n )}\n </div>\n )}\n </div>\n {bottom && <div className={styles['RichCell__bottom']}>{bottom}</div>}\n {actions && <div className={styles['RichCell__actions']}>{actions}</div>}\n </div>\n </Tappable>\n );\n};\n\nRichCell.Icon = RichCellIcon;\n"],"names":["React","classNames","useAdaptivity","SizeType","Tappable","Subhead","RichCellIcon","sizeYClassNames","none","COMPACT","RichCell","subhead","children","text","caption","before","after","afterCaption","bottom","actions","multiline","className","restProps","sizeY","REGULAR","div","Component","Icon"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAuB,uBAAuB;AAC/D,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,YAAY,QAAQ,8BAA8B;AAG3D,IAAMC;IACJC,IAAI;GACHL,SAASM,OAAO;AAqDnB;;CAEC,GACD,OAAO,IAAMC,WAAW;QACtBC,iBAAAA,SACAC,kBAAAA,UACAC,cAAAA,MACAC,iBAAAA,SACAC,gBAAAA,QACAC,eAAAA,OACAC,sBAAAA,cACAC,gBAAAA,QACAC,iBAAAA,SACAC,mBAAAA,WACAC,mBAAAA,WACGC;QAXHX;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAA2BnB,iBAAAA,wCAAAA,eAAnBqB,OAAAA,0CAAQ;IAEhB,qBACE,oBAACnB,kDACKkB;QACJD,WAAWpB,2BAET,CAACmB,4CACDG,UAAUpB,SAASqB,OAAO,IAAIjB,eAAe,CAACgB,MAAM,EACpDF;QAGDN,wBAAU,oBAACU;QAAIJ,SAAS;OAA+BN,uBACxD,oBAACU;QAAIJ,SAAS;qBACZ,oBAACI;QAAIJ,SAAS;qBACZ,oBAACI;QAAIJ,SAAS;OACXV,yBACC,oBAACN;QAAQqB,WAAU;QAAML,SAAS;OAC/BV,wBAGL,oBAACc;QAAIJ,SAAS;OAAiCT,WAC9CC,sBAAQ,oBAACY;QAAIJ,SAAS;OAA6BR,OACnDC,yBACC,oBAACT;QAAQqB,WAAU;QAAML,SAAS;OAC/BP,WAIN,AAACE,CAAAA,SAASC,YAAW,mBACpB,oBAACQ;QAAIJ,SAAS;OACXL,uBAAS,oBAACS;QAAIJ,SAAS;OAAuCL,QAC9DC,8BACC,oBAACQ;QAAIJ,SAAS;OAAsCJ,iBAK3DC,wBAAU,oBAACO;QAAIJ,SAAS;OAA+BH,SACvDC,yBAAW,oBAACM;QAAIJ,SAAS;OAAgCF;AAIlE,EAAE;AAEFT,SAASiB,IAAI,GAAGrB"}
@@ -7,6 +7,7 @@ export interface RootProps extends React.HTMLAttributes<HTMLDivElement>, NavIdPr
7
7
  from: string;
8
8
  to: string;
9
9
  }): void;
10
+ children: React.ReactElement | Iterable<React.ReactElement>;
10
11
  }
11
12
  export interface RootState {
12
13
  activeView: string;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Root/Root.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ScrollContext } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { SplitColContext } from '../SplitCol/SplitColContext';\nimport styles from './Root.module.css';\n\nexport interface RootProps extends React.HTMLAttributes<HTMLDivElement>, NavIdProps {\n activeView: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n}\n\nexport interface RootState {\n activeView: string;\n transition: boolean;\n isBack?: boolean;\n prevView?: string;\n}\n\nconst warn = warnOnce('Root');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Root\n */\nexport const Root = ({\n children,\n activeView: _activeView,\n onTransition,\n nav,\n className,\n ...restProps\n}: RootProps) => {\n const scroll = React.useContext(ScrollContext);\n const platform = usePlatform();\n const { document } = useDOM();\n const scrolls = React.useRef<Record<string, number>>({}).current;\n const viewNodes = React.useRef<Record<string, HTMLElement | null>>({}).current;\n\n const { transitionMotionEnabled = true } = useConfigProvider();\n const { animate } = React.useContext(SplitColContext);\n const disableAnimation = !transitionMotionEnabled || !animate;\n\n const views = React.Children.toArray(children) as React.ReactElement[];\n\n const [{ prevView, activeView, transition, isBack }, _setState] = React.useState<RootState>({\n activeView: _activeView,\n transition: false,\n });\n const transitionTo = (panel: string) => {\n if (panel !== activeView) {\n const viewIds = views.map((view) => getNavId(view.props, warn));\n const isBack = viewIds.indexOf(panel) < viewIds.indexOf(activeView);\n scrolls[activeView] = scroll.getScroll().y;\n _setState({\n activeView: panel,\n prevView: activeView,\n transition: !disableAnimation,\n isBack,\n });\n }\n };\n const finishTransition = React.useCallback(\n () => _setState({ activeView, prevView, isBack, transition: false }),\n [activeView, isBack, prevView],\n );\n\n useIsomorphicLayoutEffect(() => {\n (document!.activeElement as HTMLElement).blur();\n }, [activeView]);\n\n // Нужен переход\n useIsomorphicLayoutEffect(() => transitionTo(_activeView), [_activeView]);\n useIsomorphicLayoutEffect(() => {\n if (!transition && prevView) {\n // Закончился переход\n scroll.scrollTo(0, isBack ? scrolls[activeView] : 0);\n onTransition &&\n onTransition({\n isBack: Boolean(isBack),\n from: prevView,\n to: activeView,\n });\n }\n }, [transition, prevView]);\n\n const fallbackTransition = useTimeout(finishTransition, platform === Platform.IOS ? 600 : 300);\n React.useEffect(() => {\n if (!transition) {\n fallbackTransition.clear();\n return;\n }\n fallbackTransition.set();\n }, [fallbackTransition, transition]);\n\n const onAnimationEnd = (e: React.AnimationEvent) => {\n if (\n [\n styles['vkui-root-android-animation-hide-back'],\n styles['vkui-root-android-animation-show-forward'],\n styles['vkui-root-ios-animation-hide-back'],\n styles['vkui-root-ios-animation-show-forward'],\n ].includes(e.animationName)\n ) {\n finishTransition();\n }\n };\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['Root'],\n platform === Platform.IOS && styles['Root--ios'],\n transition && styles['Root--transition'],\n className,\n )}\n >\n {views.map((view) => {\n const viewId = getNavId(view.props, warn);\n if (viewId !== activeView && !(transition && viewId === prevView)) {\n return null;\n }\n const isTransitionTarget = transition && viewId === (isBack ? prevView : activeView);\n const compensateScroll =\n transition && (viewId === prevView || (isBack && viewId === activeView));\n return (\n <div\n key={viewId}\n ref={(e) => viewId && (viewNodes[viewId] = e)}\n onAnimationEnd={isTransitionTarget ? onAnimationEnd : undefined}\n className={classNames(\n styles['Root__view'],\n transition && viewId === prevView && isBack && styles['Root__view--hide-back'],\n transition && viewId === prevView && !isBack && styles['Root__view--hide-forward'],\n transition && viewId === activeView && isBack && styles['Root__view--show-back'],\n transition && viewId === activeView && !isBack && styles['Root__view--show-forward'],\n )}\n >\n <NavTransitionProvider entering={transition && viewId === activeView}>\n <div\n className={styles['Root__scrollCompensation']}\n style={{\n marginTop: compensateScroll ? viewId && -(scrolls[viewId] ?? 0) : undefined,\n }}\n >\n {view}\n </div>\n </NavTransitionProvider>\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["React","classNames","usePlatform","useTimeout","useDOM","getNavId","Platform","useIsomorphicLayoutEffect","warnOnce","ScrollContext","useConfigProvider","NavTransitionProvider","SplitColContext","warn","Root","children","activeView","_activeView","onTransition","nav","className","restProps","scroll","useContext","platform","document","scrolls","useRef","current","viewNodes","transitionMotionEnabled","animate","disableAnimation","views","Children","toArray","useState","transition","prevView","isBack","_setState","transitionTo","panel","viewIds","map","view","props","indexOf","getScroll","y","finishTransition","useCallback","activeElement","blur","scrollTo","Boolean","from","to","fallbackTransition","IOS","useEffect","clear","set","onAnimationEnd","e","includes","animationName","div","viewId","isTransitionTarget","compensateScroll","key","ref","undefined","entering","style","marginTop"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,QAAQ,QAAoB,qBAAqB;AAC1D,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,yBAAyB,QAAQ,sCAAsC;AAChF,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,iBAAiB,QAAQ,0CAA0C;AAC5E,SAASC,qBAAqB,QAAQ,+CAA+C;AACrF,SAASC,eAAe,QAAQ,8BAA8B;AAe9D,IAAMC,OAAOL,SAAS;AAEtB;;CAEC,GACD,OAAO,IAAMM,OAAO;QAClBC,kBAAAA,UACAC,AAAYC,qBAAZD,YACAE,sBAAAA,cACAC,aAAAA,KACAC,mBAAAA,WACGC;QALHN;QACAC;QACAE;QACAC;QACAC;;IAGA,IAAME,SAAStB,MAAMuB,WAAWd;IAChC,IAAMe,WAAWtB;IACjB,IAAM,AAAEuB,WAAarB,SAAbqB;IACR,IAAMC,UAAU1B,MAAM2B,OAA+B,CAAC,GAAGC;IACzD,IAAMC,YAAY7B,MAAM2B,OAA2C,CAAC,GAAGC;IAEvE,IAA2ClB,qBAAAA,kEAAAA,mBAAnCoB,yBAAAA,kFAA0B;IAClC,IAAM,AAAEC,UAAY/B,MAAMuB,WAAWX,iBAA7BmB;IACR,IAAMC,mBAAmB,CAACF,2BAA2B,CAACC;IAEtD,IAAME,QAAQjC,MAAMkC,SAASC,QAAQpB;IAErC,IAAkEf,mCAAAA,MAAMoC,SAAoB;QAC1FpB,YAAYC;QACZoB,YAAY;IACd,2BAHkErC,oBAAzDsC,4BAAAA,UAAUtB,8BAAAA,YAAYqB,8BAAAA,YAAYE,0BAAAA,QAAUC,YAAaxC;IAIlE,IAAMyC,eAAe,SAACC;QACpB,IAAIA,UAAU1B,YAAY;YACxB,IAAM2B,UAAUV,MAAMW,IAAI,SAACC;uBAASxC,SAASwC,KAAKC,OAAOjC;;YACzD,IAAM0B,SAASI,QAAQI,QAAQL,SAASC,QAAQI,QAAQ/B;YACxDU,OAAO,CAACV,WAAW,GAAGM,OAAO0B,YAAYC;YACzCT,UAAU;gBACRxB,YAAY0B;gBACZJ,UAAUtB;gBACVqB,YAAY,CAACL;gBACbO,QAAAA;YACF;QACF;IACF;IACA,IAAMW,mBAAmBlD,MAAMmD,YAC7B;eAAMX,UAAU;YAAExB,YAAAA;YAAYsB,UAAAA;YAAUC,QAAAA;YAAQF,YAAY;QAAM;OAClE;QAACrB;QAAYuB;QAAQD;KAAS;IAGhC/B,0BAA0B;QACvBkB,SAAU2B,cAA8BC;IAC3C,GAAG;QAACrC;KAAW;IAEf,gBAAgB;IAChBT,0BAA0B;eAAMkC,aAAaxB;OAAc;QAACA;KAAY;IACxEV,0BAA0B;QACxB,IAAI,CAAC8B,cAAcC,UAAU;YAC3B,qBAAqB;YACrBhB,OAAOgC,SAAS,GAAGf,SAASb,OAAO,CAACV,WAAW,GAAG;YAClDE,gBACEA,aAAa;gBACXqB,QAAQgB,QAAQhB;gBAChBiB,MAAMlB;gBACNmB,IAAIzC;YACN;QACJ;IACF,GAAG;QAACqB;QAAYC;KAAS;IAEzB,IAAMoB,qBAAqBvD,WAAW+C,kBAAkB1B,aAAalB,SAASqD,MAAM,MAAM;IAC1F3D,MAAM4D,UAAU;QACd,IAAI,CAACvB,YAAY;YACfqB,mBAAmBG;YACnB;QACF;QACAH,mBAAmBI;IACrB,GAAG;QAACJ;QAAoBrB;KAAW;IAEnC,IAAM0B,iBAAiB,SAACC;QACtB,IACE;;;;;SAKC,CAACC,SAASD,EAAEE,gBACb;YACAhB;QACF;IACF;IAEA,qBACE,oBAACiB,+CACK9C;QACJD,WAAWnB,uBAETuB,aAAalB,SAASqD,wBACtBtB,sCACAjB;QAGDa,MAAMW,IAAI,SAACC;QACV,IAAMuB,SAAS/D,SAASwC,KAAKC,OAAOjC;QACpC,IAAIuD,WAAWpD,cAAc,CAAEqB,CAAAA,cAAc+B,WAAW9B,QAAO,GAAI;YACjE,OAAO;QACT;QACA,IAAM+B,qBAAqBhC,cAAc+B,WAAY7B,CAAAA,SAASD,WAAWtB,UAAS;QAClF,IAAMsD,mBACJjC,cAAe+B,CAAAA,WAAW9B,YAAaC,UAAU6B,WAAWpD,UAAU;YAkBpBU;QAjBpD,qBACE,oBAACyC;YACCI,KAAKH;YACLI,KAAK,SAACR;uBAAMI,UAAWvC,CAAAA,SAAS,CAACuC,OAAO,GAAGJ,CAAAA;;YAC3CD,gBAAgBM,qBAAqBN,iBAAiBU;YACtDrD,WAAWnB,6BAEToC,cAAc+B,WAAW9B,YAAYC,uCACrCF,cAAc+B,WAAW9B,YAAY,CAACC,0CACtCF,cAAc+B,WAAWpD,cAAcuB,uCACvCF,cAAc+B,WAAWpD,cAAc,CAACuB;yBAG1C,oBAAC5B;YAAsB+D,UAAUrC,cAAc+B,WAAWpD;yBACxD,oBAACmD;YACC/C,SAAS;YACTuD,OAAO;gBACLC,WAAWN,mBAAmBF,UAAU,CAAE1C,CAAAA,CAAAA,kBAAAA,OAAO,CAAC0C,OAAO,cAAf1C,6BAAAA,kBAAmB,CAAA,IAAK+C;YACpE;WAEC5B;IAKX;AAGN,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Root/Root.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ScrollContext } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { SplitColContext } from '../SplitCol/SplitColContext';\nimport styles from './Root.module.css';\n\nexport interface RootProps extends React.HTMLAttributes<HTMLDivElement>, NavIdProps {\n activeView: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n children: React.ReactElement | Iterable<React.ReactElement>;\n}\n\nexport interface RootState {\n activeView: string;\n transition: boolean;\n isBack?: boolean;\n prevView?: string;\n}\n\nconst warn = warnOnce('Root');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Root\n */\nexport const Root = ({\n children,\n activeView: _activeView,\n onTransition,\n nav,\n className,\n ...restProps\n}: RootProps) => {\n const scroll = React.useContext(ScrollContext);\n const platform = usePlatform();\n const { document } = useDOM();\n const scrolls = React.useRef<Record<string, number>>({}).current;\n const viewNodes = React.useRef<Record<string, HTMLElement | null>>({}).current;\n\n const { transitionMotionEnabled = true } = useConfigProvider();\n const { animate } = React.useContext(SplitColContext);\n const disableAnimation = !transitionMotionEnabled || !animate;\n\n const views = React.Children.toArray(children) as React.ReactElement[];\n\n const [{ prevView, activeView, transition, isBack }, _setState] = React.useState<RootState>({\n activeView: _activeView,\n transition: false,\n });\n const transitionTo = (panel: string) => {\n if (panel !== activeView) {\n const viewIds = views.map((view) => getNavId(view.props, warn));\n const isBack = viewIds.indexOf(panel) < viewIds.indexOf(activeView);\n scrolls[activeView] = scroll.getScroll().y;\n _setState({\n activeView: panel,\n prevView: activeView,\n transition: !disableAnimation,\n isBack,\n });\n }\n };\n const finishTransition = React.useCallback(\n () => _setState({ activeView, prevView, isBack, transition: false }),\n [activeView, isBack, prevView],\n );\n\n useIsomorphicLayoutEffect(() => {\n (document!.activeElement as HTMLElement).blur();\n }, [activeView]);\n\n // Нужен переход\n useIsomorphicLayoutEffect(() => transitionTo(_activeView), [_activeView]);\n useIsomorphicLayoutEffect(() => {\n if (!transition && prevView) {\n // Закончился переход\n scroll.scrollTo(0, isBack ? scrolls[activeView] : 0);\n onTransition &&\n onTransition({\n isBack: Boolean(isBack),\n from: prevView,\n to: activeView,\n });\n }\n }, [transition, prevView]);\n\n const fallbackTransition = useTimeout(finishTransition, platform === Platform.IOS ? 600 : 300);\n React.useEffect(() => {\n if (!transition) {\n fallbackTransition.clear();\n return;\n }\n fallbackTransition.set();\n }, [fallbackTransition, transition]);\n\n const onAnimationEnd = (e: React.AnimationEvent) => {\n if (\n [\n styles['vkui-root-android-animation-hide-back'],\n styles['vkui-root-android-animation-show-forward'],\n styles['vkui-root-ios-animation-hide-back'],\n styles['vkui-root-ios-animation-show-forward'],\n ].includes(e.animationName)\n ) {\n finishTransition();\n }\n };\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['Root'],\n platform === Platform.IOS && styles['Root--ios'],\n transition && styles['Root--transition'],\n className,\n )}\n >\n {views.map((view) => {\n const viewId = getNavId(view.props, warn);\n if (viewId !== activeView && !(transition && viewId === prevView)) {\n return null;\n }\n const isTransitionTarget = transition && viewId === (isBack ? prevView : activeView);\n const compensateScroll =\n transition && (viewId === prevView || (isBack && viewId === activeView));\n return (\n <div\n key={viewId}\n ref={(e) => viewId && (viewNodes[viewId] = e)}\n onAnimationEnd={isTransitionTarget ? onAnimationEnd : undefined}\n className={classNames(\n styles['Root__view'],\n transition && viewId === prevView && isBack && styles['Root__view--hide-back'],\n transition && viewId === prevView && !isBack && styles['Root__view--hide-forward'],\n transition && viewId === activeView && isBack && styles['Root__view--show-back'],\n transition && viewId === activeView && !isBack && styles['Root__view--show-forward'],\n )}\n >\n <NavTransitionProvider entering={transition && viewId === activeView}>\n <div\n className={styles['Root__scrollCompensation']}\n style={{\n marginTop: compensateScroll ? viewId && -(scrolls[viewId] ?? 0) : undefined,\n }}\n >\n {view}\n </div>\n </NavTransitionProvider>\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["React","classNames","usePlatform","useTimeout","useDOM","getNavId","Platform","useIsomorphicLayoutEffect","warnOnce","ScrollContext","useConfigProvider","NavTransitionProvider","SplitColContext","warn","Root","children","activeView","_activeView","onTransition","nav","className","restProps","scroll","useContext","platform","document","scrolls","useRef","current","viewNodes","transitionMotionEnabled","animate","disableAnimation","views","Children","toArray","useState","transition","prevView","isBack","_setState","transitionTo","panel","viewIds","map","view","props","indexOf","getScroll","y","finishTransition","useCallback","activeElement","blur","scrollTo","Boolean","from","to","fallbackTransition","IOS","useEffect","clear","set","onAnimationEnd","e","includes","animationName","div","viewId","isTransitionTarget","compensateScroll","key","ref","undefined","entering","style","marginTop"],"mappings":"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"}
@@ -52,10 +52,10 @@ import { Headline } from "../Typography/Headline/Headline";
52
52
  inputProps.onBlur && inputProps.onBlur(e);
53
53
  };
54
54
  var onCancel = React.useCallback(function() {
55
- var _Object_getOwnPropertyDescriptor, _inputRef_current;
55
+ var _Object_getOwnPropertyDescriptor, _nativeInputValueSetter, _inputRef_current;
56
56
  // eslint-disable-next-line @typescript-eslint/unbound-method
57
57
  var nativeInputValueSetter = (_Object_getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value")) === null || _Object_getOwnPropertyDescriptor === void 0 ? void 0 : _Object_getOwnPropertyDescriptor.set;
58
- nativeInputValueSetter === null || nativeInputValueSetter === void 0 ? void 0 : nativeInputValueSetter.call(inputRef.current, "");
58
+ (_nativeInputValueSetter = nativeInputValueSetter) === null || _nativeInputValueSetter === void 0 ? void 0 : _nativeInputValueSetter.call(inputRef.current, "");
59
59
  var ev2 = new Event("input", {
60
60
  bubbles: true
61
61
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Search/Search.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon16Clear, Icon16SearchOutline, Icon24Cancel } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useBooleanState } from '../../hooks/useBooleanState';\nimport { useEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { VKUITouchEvent } from '../../lib/touch';\nimport { HasRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { IconButton } from '../IconButton/IconButton';\nimport { TouchEvent } from '../Touch/Touch';\nimport { Headline } from '../Typography/Headline/Headline';\nimport styles from './Search.module.css';\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement> {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode;\n onIconClick?: (e: VKUITouchEvent) => void;\n defaultValue?: string;\n iconAriaLabel?: string;\n clearAriaLabel?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Search\n */\nexport const Search = ({\n before = <Icon16SearchOutline />,\n className,\n defaultValue = '',\n placeholder = 'Поиск',\n after = 'Отмена',\n getRef,\n icon,\n onIconClick = noop,\n style,\n autoComplete = 'off',\n onChange: onChangeProp,\n value: valueProp,\n iconAriaLabel,\n clearAriaLabel = 'Очистить',\n ...inputProps\n}: SearchProps) => {\n const inputRef = useExternRef(getRef);\n const {\n value: isFocused,\n setTrue: setFocusedTrue,\n setFalse: setFocusedFalse,\n } = useBooleanState(false);\n\n const [value, onChange] = useEnsuredControl({\n defaultValue,\n onChange: onChangeProp,\n value: valueProp,\n });\n const { sizeY = 'none' } = useAdaptivity();\n const platform = usePlatform();\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedTrue();\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedFalse();\n inputProps.onBlur && inputProps.onBlur(e);\n };\n\n const onCancel = React.useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value',\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, '');\n\n const ev2 = new Event('input', { bubbles: true });\n inputRef.current?.dispatchEvent(ev2);\n }, [inputRef]);\n\n const onIconClickStart = React.useCallback(\n (e: TouchEvent) => onIconClick(e.originalEvent),\n [onIconClick],\n );\n\n const onIconCancelClickStart = React.useCallback(\n (e: TouchEvent) => {\n e.originalEvent.preventDefault();\n inputRef.current?.focus();\n onCancel();\n },\n [inputRef, onCancel],\n );\n\n return (\n <div\n className={classNames(\n 'vkuiInternalSearch',\n styles['Search'],\n sizeY === 'none' && styles['Search--sizeY-none'],\n sizeY === SizeType.COMPACT && styles['Search--sizeY-compact'],\n isFocused && styles['Search--focused'],\n value && styles['Search--has-value'],\n after && styles['Search--has-after'],\n icon && styles['Search--has-icon'],\n className,\n )}\n style={style}\n >\n <div className={styles['Search__field']}>\n <label className={styles['Search__control']}>\n {before}\n <Headline\n Component=\"input\"\n type=\"search\"\n level=\"1\"\n weight=\"3\"\n {...inputProps}\n placeholder={placeholder}\n autoComplete={autoComplete}\n getRootRef={inputRef}\n className={styles['Search__input']}\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n value={value}\n />\n </label>\n <div className={styles['Search__icons']}>\n {icon && (\n <IconButton\n hoverMode=\"opacity\"\n onStart={onIconClickStart}\n className={styles['Search__icon']}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n aria-label={iconAriaLabel}\n >\n {icon}\n </IconButton>\n )}\n {!!value && (\n <IconButton\n hoverMode=\"opacity\"\n onStart={onIconCancelClickStart}\n onClick={onCancel}\n className={styles['Search__icon']}\n aria-label={clearAriaLabel}\n >\n {platform === Platform.IOS ? <Icon16Clear /> : <Icon24Cancel />}\n </IconButton>\n )}\n </div>\n </div>\n {platform === Platform.IOS && after && (\n <Button\n mode=\"tertiary\"\n size=\"m\"\n className={styles['Search__after']}\n focusVisibleMode=\"inside\"\n onClick={onCancel}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n >\n <span className={styles['Search__afterText']}>{after}</span>\n </Button>\n )}\n </div>\n );\n};\n"],"names":["React","Icon16Clear","Icon16SearchOutline","Icon24Cancel","classNames","noop","useAdaptivity","useBooleanState","useEnsuredControl","useExternRef","usePlatform","SizeType","Platform","Button","IconButton","Headline","Search","before","className","defaultValue","placeholder","after","getRef","icon","onIconClick","style","autoComplete","onChange","onChangeProp","value","valueProp","iconAriaLabel","clearAriaLabel","inputProps","inputRef","isFocused","setTrue","setFocusedTrue","setFalse","setFocusedFalse","sizeY","platform","onFocus","e","onBlur","onCancel","useCallback","Object","nativeInputValueSetter","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","originalEvent","onIconCancelClickStart","preventDefault","focus","div","COMPACT","label","Component","type","level","weight","getRootRef","hoverMode","onStart","aria-label","onClick","IOS","mode","size","focusVisibleMode","span"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Search/Search.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon16Clear, Icon16SearchOutline, Icon24Cancel } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useBooleanState } from '../../hooks/useBooleanState';\nimport { useEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { VKUITouchEvent } from '../../lib/touch';\nimport { HasRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { IconButton } from '../IconButton/IconButton';\nimport { TouchEvent } from '../Touch/Touch';\nimport { Headline } from '../Typography/Headline/Headline';\nimport styles from './Search.module.css';\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement> {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode;\n onIconClick?: (e: VKUITouchEvent) => void;\n defaultValue?: string;\n iconAriaLabel?: string;\n clearAriaLabel?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Search\n */\nexport const Search = ({\n before = <Icon16SearchOutline />,\n className,\n defaultValue = '',\n placeholder = 'Поиск',\n after = 'Отмена',\n getRef,\n icon,\n onIconClick = noop,\n style,\n autoComplete = 'off',\n onChange: onChangeProp,\n value: valueProp,\n iconAriaLabel,\n clearAriaLabel = 'Очистить',\n ...inputProps\n}: SearchProps) => {\n const inputRef = useExternRef(getRef);\n const {\n value: isFocused,\n setTrue: setFocusedTrue,\n setFalse: setFocusedFalse,\n } = useBooleanState(false);\n\n const [value, onChange] = useEnsuredControl({\n defaultValue,\n onChange: onChangeProp,\n value: valueProp,\n });\n const { sizeY = 'none' } = useAdaptivity();\n const platform = usePlatform();\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedTrue();\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedFalse();\n inputProps.onBlur && inputProps.onBlur(e);\n };\n\n const onCancel = React.useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value',\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, '');\n\n const ev2 = new Event('input', { bubbles: true });\n inputRef.current?.dispatchEvent(ev2);\n }, [inputRef]);\n\n const onIconClickStart = React.useCallback(\n (e: TouchEvent) => onIconClick(e.originalEvent),\n [onIconClick],\n );\n\n const onIconCancelClickStart = React.useCallback(\n (e: TouchEvent) => {\n e.originalEvent.preventDefault();\n inputRef.current?.focus();\n onCancel();\n },\n [inputRef, onCancel],\n );\n\n return (\n <div\n className={classNames(\n 'vkuiInternalSearch',\n styles['Search'],\n sizeY === 'none' && styles['Search--sizeY-none'],\n sizeY === SizeType.COMPACT && styles['Search--sizeY-compact'],\n isFocused && styles['Search--focused'],\n value && styles['Search--has-value'],\n after && styles['Search--has-after'],\n icon && styles['Search--has-icon'],\n className,\n )}\n style={style}\n >\n <div className={styles['Search__field']}>\n <label className={styles['Search__control']}>\n {before}\n <Headline\n Component=\"input\"\n type=\"search\"\n level=\"1\"\n weight=\"3\"\n {...inputProps}\n placeholder={placeholder}\n autoComplete={autoComplete}\n getRootRef={inputRef}\n className={styles['Search__input']}\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n value={value}\n />\n </label>\n <div className={styles['Search__icons']}>\n {icon && (\n <IconButton\n hoverMode=\"opacity\"\n onStart={onIconClickStart}\n className={styles['Search__icon']}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n aria-label={iconAriaLabel}\n >\n {icon}\n </IconButton>\n )}\n {!!value && (\n <IconButton\n hoverMode=\"opacity\"\n onStart={onIconCancelClickStart}\n onClick={onCancel}\n className={styles['Search__icon']}\n aria-label={clearAriaLabel}\n >\n {platform === Platform.IOS ? <Icon16Clear /> : <Icon24Cancel />}\n </IconButton>\n )}\n </div>\n </div>\n {platform === Platform.IOS && after && (\n <Button\n mode=\"tertiary\"\n size=\"m\"\n className={styles['Search__after']}\n focusVisibleMode=\"inside\"\n onClick={onCancel}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n >\n <span className={styles['Search__afterText']}>{after}</span>\n </Button>\n )}\n </div>\n );\n};\n"],"names":["React","Icon16Clear","Icon16SearchOutline","Icon24Cancel","classNames","noop","useAdaptivity","useBooleanState","useEnsuredControl","useExternRef","usePlatform","SizeType","Platform","Button","IconButton","Headline","Search","before","className","defaultValue","placeholder","after","getRef","icon","onIconClick","style","autoComplete","onChange","onChangeProp","value","valueProp","iconAriaLabel","clearAriaLabel","inputProps","inputRef","isFocused","setTrue","setFocusedTrue","setFalse","setFocusedFalse","sizeY","platform","onFocus","e","onBlur","onCancel","useCallback","Object","nativeInputValueSetter","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","originalEvent","onIconCancelClickStart","preventDefault","focus","div","COMPACT","label","Component","type","level","weight","getRootRef","hoverMode","onStart","aria-label","onClick","IOS","mode","size","focusVisibleMode","span"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,WAAW,EAAEC,mBAAmB,EAAEC,YAAY,QAAQ,mBAAmB;AAClF,SAASC,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,qBAAqB;AAG9C,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,UAAU,QAAQ,2BAA2B;AAEtD,SAASC,QAAQ,QAAQ,kCAAkC;AAkB3D;;CAEC,GACD,OAAO,IAAMC,SAAS;+BACpBC,QAAAA,kDAAS,oBAACf,4CACVgB,mBAAAA,wCACAC,cAAAA,gDAAe,sDACfC,aAAAA,8CAAc,oDACdC,OAAAA,kCAAQ,yBACRC,gBAAAA,QACAC,cAAAA,kCACAC,aAAAA,8CAAcnB,2BACdoB,eAAAA,oCACAC,cAAAA,gDAAe,6BACfC,AAAUC,sBAAVD,UACAE,AAAOC,mBAAPD,OACAE,uBAAAA,8CACAC,gBAAAA,oDAAiB,oCACdC;QAdHhB;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAE;QACAE;QACAC;;IAGA,IAAME,WAAWzB,aAAaa;IAC9B,IAIIf,mBAAAA,gBAAgB,QAHlBsB,AAAOM,YAGL5B,iBAHFsB,OACAO,AAASC,iBAEP9B,iBAFF6B,SACAE,AAAUC,kBACRhC,iBADF+B;IAGF,IAA0B9B,sCAAAA,kBAAkB;QAC1CW,cAAAA;QACAQ,UAAUC;QACVC,OAAOC;IACT,QAJOD,QAAmBrB,uBAAZmB,WAAYnB;IAK1B,IAA2BF,iBAAAA,wCAAAA,eAAnBkC,OAAAA,0CAAQ;IAChB,IAAMC,WAAW/B;IAEjB,IAAMgC,UAAU,SAACC;QACfN;QACAJ,WAAWS,OAAO,IAAIT,WAAWS,OAAO,CAACC;IAC3C;IAEA,IAAMC,SAAS,SAACD;QACdJ;QACAN,WAAWW,MAAM,IAAIX,WAAWW,MAAM,CAACD;IACzC;IAEA,IAAME,WAAW7C,MAAM8C,WAAW,CAAC;YAEFC,kCAI/BC,yBAGAd;QARA,6DAA6D;QAC7D,IAAMc,0BAAyBD,mCAAAA,OAAOE,wBAAwB,CAC5DC,iBAAiBC,SAAS,EAC1B,sBAF6BJ,uDAAAA,iCAG5BK,GAAG;SACNJ,0BAAAA,oCAAAA,8CAAAA,wBAAwBK,IAAI,CAACnB,SAASoB,OAAO,EAAE;QAE/C,IAAMC,MAAM,IAAIC,MAAM,SAAS;YAAEC,SAAS;QAAK;SAC/CvB,oBAAAA,SAASoB,OAAO,cAAhBpB,wCAAAA,kBAAkBwB,aAAa,CAACH;IAClC,GAAG;QAACrB;KAAS;IAEb,IAAMyB,mBAAmB3D,MAAM8C,WAAW,CACxC,SAACH;eAAkBnB,YAAYmB,EAAEiB,aAAa;OAC9C;QAACpC;KAAY;IAGf,IAAMqC,yBAAyB7D,MAAM8C,WAAW,CAC9C,SAACH;YAECT;QADAS,EAAEiB,aAAa,CAACE,cAAc;SAC9B5B,oBAAAA,SAASoB,OAAO,cAAhBpB,wCAAAA,kBAAkB6B,KAAK;QACvBlB;IACF,GACA;QAACX;QAAUW;KAAS;IAGtB,qBACE,oBAACmB;QACC9C,WAAWd,WACT,oCAEAoC,UAAU,oCACVA,UAAU7B,SAASsD,OAAO,iCAC1B9B,oCACAN,kCACAR,kCACAE,gCACAL;QAEFO,OAAOA;qBAEP,oBAACuC;QAAI9C,SAAS;qBACZ,oBAACgD;QAAMhD,SAAS;OACbD,sBACD,oBAACF;QACCoD,WAAU;QACVC,MAAK;QACLC,OAAM;QACNC,QAAO;OACHrC;QACJb,aAAaA;QACbM,cAAcA;QACd6C,YAAYrC;QACZhB,SAAS;QACTwB,SAASA;QACTE,QAAQA;QACRjB,UAAUA;QACVE,OAAOA;wBAGX,oBAACmC;QAAI9C,SAAS;OACXK,sBACC,oBAACT;QACC0D,WAAU;QACVC,SAASd;QACTzC,SAAS;QACTwB,SAASL;QACTO,QAAQL;QACRmC,cAAY3C;OAEXR,OAGJ,CAAC,CAACM,uBACD,oBAACf;QACC0D,WAAU;QACVC,SAASZ;QACTc,SAAS9B;QACT3B,SAAS;QACTwD,cAAY1C;OAEXS,aAAa7B,SAASgE,GAAG,iBAAG,oBAAC3E,mCAAiB,oBAACE,wBAKvDsC,aAAa7B,SAASgE,GAAG,IAAIvD,uBAC5B,oBAACR;QACCgE,MAAK;QACLC,MAAK;QACL5D,SAAS;QACT6D,kBAAiB;QACjBJ,SAAS9B;QACTH,SAASL;QACTO,QAAQL;qBAER,oBAACyC;QAAK9D,SAAS;OAAgCG;AAKzD,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SegmentedControl/SegmentedControl.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useCustomEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useId } from '../../hooks/useId';\nimport { SizeType } from '../../lib/adaptivity';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasRootRef } from '../../types';\nimport { SegmentedControlOption } from './SegmentedControlOption/SegmentedControlOption';\nimport styles from './SegmentedControl.module.css';\n\nconst sizeYClassNames = {\n none: styles['SegmentedControl--sizeY-none'],\n [SizeType.REGULAR]: styles['SegmentedControl--sizeY-regular'],\n};\n\nexport type SegmentedControlValue = string | number | undefined;\n\nexport interface SegmentedControlOptionInterface\n extends Omit<React.HTMLAttributes<HTMLElement>, 'label'> {\n label: React.ReactChild;\n value: SegmentedControlValue;\n}\n\nexport interface SegmentedControlProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>,\n HasRootRef<HTMLDivElement> {\n options: SegmentedControlOptionInterface[];\n size?: 'm' | 'l';\n name?: string;\n onChange?: (value: SegmentedControlValue) => void;\n value?: SegmentedControlValue;\n defaultValue?: SegmentedControlValue;\n}\n\nconst warn = warnOnce('SegmentedControl');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SegmentedControl\n */\nexport const SegmentedControl = ({\n size = 'l',\n name,\n options,\n getRootRef,\n defaultValue = options[0]?.value,\n children,\n className,\n onChange: onChangeProp,\n value: valueProp,\n ...restProps\n}: SegmentedControlProps) => {\n const id = useId();\n\n const [value, onChange] = useCustomEnsuredControl({\n onChange: onChangeProp,\n value: valueProp,\n defaultValue,\n });\n\n const { sizeY = 'none' } = useAdaptivity();\n\n const actualIndex = options.findIndex((option) => option.value === value);\n\n useIsomorphicLayoutEffect(() => {\n if (actualIndex === -1 && process.env.NODE_ENV === 'development') {\n warn('defaultValue: такого значения нет среди опций!', 'error');\n }\n }, [actualIndex]);\n\n const translateX = `translateX(${100 * actualIndex}%)`;\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['SegmentedControl'],\n sizeY !== SizeType.COMPACT && sizeYClassNames[sizeY],\n size === 'l' && styles['SegmentedControl--size-l'],\n className,\n )}\n ref={getRootRef}\n >\n <div role=\"radiogroup\" className={styles['SegmentedControl__in']}>\n {actualIndex > -1 && (\n <div\n aria-hidden\n className={styles['SegmentedControl__slider']}\n style={{\n width: `${100 / options.length}%`,\n transform: translateX,\n WebkitTransform: translateX,\n }}\n />\n )}\n {options.map(({ label, className: optionClassName, ...optionProps }) => (\n <SegmentedControlOption\n key={`${optionProps.value}`}\n {...optionProps}\n className={classNames(styles['SegmentedControl__option'], optionClassName)}\n name={name ?? id}\n checked={value === optionProps.value}\n onChange={() => onChange(optionProps.value)}\n >\n {label}\n </SegmentedControlOption>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["options","React","classNames","useAdaptivity","useCustomEnsuredControl","useId","SizeType","useIsomorphicLayoutEffect","warnOnce","SegmentedControlOption","sizeYClassNames","none","REGULAR","warn","SegmentedControl","size","name","getRootRef","defaultValue","value","children","className","onChange","onChangeProp","valueProp","restProps","id","sizeY","actualIndex","findIndex","option","process","env","NODE_ENV","translateX","div","COMPACT","ref","role","aria-hidden","style","width","length","transform","WebkitTransform","map","label","optionClassName","optionProps","key","checked"],"mappings":";;;;;IA8CiBA;AA9CjB,YAAYC,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,uBAAuB,QAAQ,gCAAgC;AACxE,SAASC,KAAK,QAAQ,oBAAoB;AAC1C,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,yBAAyB,QAAQ,sCAAsC;AAChF,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,sBAAsB,QAAQ,kDAAkD;AAGzF,IAAMC;IACJC,IAAI;GACHL,SAASM;AAsBZ,IAAMC,OAAOL,SAAS;AAEtB;;CAEC,GACD,OAAO,IAAMM,mBAAmB;6BAC9BC,MAAAA,gCAAO,mBACPC,cAAAA,MACAhB,iBAAAA,SACAiB,oBAAAA,yCACAC,cAAAA,gDAAelB,CAAAA,YAAAA,OAAO,CAAC,EAAE,cAAVA,uBAAAA,KAAAA,IAAAA,UAAYmB,6BAC3BC,kBAAAA,UACAC,mBAAAA,WACAC,AAAUC,sBAAVD,UACAH,AAAOK,mBAAPL,OACGM;QATHV;QACAC;QACAhB;QACAiB;QACAC;QACAE;QACAC;QACAC;QACAH;;IAGA,IAAMO,KAAKrB;IAEX,IAA0BD,4CAAAA,wBAAwB;QAChDkB,UAAUC;QACVJ,OAAOK;QACPN,cAAAA;IACF,QAJOC,QAAmBf,6BAAZkB,WAAYlB;IAM1B,IAA2BD,iBAAAA,wCAAAA,eAAnBwB,OAAAA,0CAAQ;IAEhB,IAAMC,cAAc5B,QAAQ6B,UAAU,SAACC;eAAWA,OAAOX,UAAUA;;IAEnEZ,0BAA0B;QACxB,IAAIqB,gBAAgB,CAAC,KAAKG,QAAQC,IAAIC,aAAa,eAAe;YAChEpB,KAAK,kDAAkD;QACzD;IACF,GAAG;QAACe;KAAY;IAEhB,IAAMM,aAAa,AAAC,cAA+B,OAAlB,MAAMN,aAAY;IAEnD,qBACE,oBAACO,+CACKV;QACJJ,WAAWnB,mCAETyB,UAAUrB,SAAS8B,WAAW1B,eAAe,CAACiB,MAAM,EACpDZ,SAAS,uCACTM;QAEFgB,KAAKpB;sBAEL,oBAACkB;QAAIG,MAAK;QAAajB,SAAS;OAC7BO,cAAc,CAAC,mBACd,oBAACO;QACCI,eAAAA;QACAlB,SAAS;QACTmB,OAAO;YACLC,OAAO,AAAC,GAAuB,OAArB,MAAMzC,QAAQ0C,QAAO;YAC/BC,WAAWT;YACXU,iBAAiBV;QACnB;QAGHlC,QAAQ6C,IAAI;YAAGC,eAAAA,OAAOzB,AAAW0B,yBAAX1B,WAA+B2B;YAAtCF;YAAOzB;;eACrB,oBAACZ;YACCwC,KAAK,AAAC,GAAoB,OAAlBD,YAAY7B;WAChB6B;YACJ3B,WAAWnB,2CAA+C6C;YAC1D/B,MAAMA,iBAAAA,kBAAAA,OAAQU;YACdwB,SAAS/B,UAAU6B,YAAY7B;YAC/BG,UAAU;uBAAMA,SAAS0B,YAAY7B;;YAEpC2B;IACqB;AAKlC,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/SegmentedControl/SegmentedControl.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useCustomEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useId } from '../../hooks/useId';\nimport { SizeType } from '../../lib/adaptivity';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasRootRef } from '../../types';\nimport { SegmentedControlOption } from './SegmentedControlOption/SegmentedControlOption';\nimport styles from './SegmentedControl.module.css';\n\nconst sizeYClassNames = {\n none: styles['SegmentedControl--sizeY-none'],\n [SizeType.REGULAR]: styles['SegmentedControl--sizeY-regular'],\n};\n\nexport type SegmentedControlValue = string | number | undefined;\n\nexport interface SegmentedControlOptionInterface\n extends Omit<React.HTMLAttributes<HTMLElement>, 'label'> {\n label: React.ReactChild;\n value: SegmentedControlValue;\n}\n\nexport interface SegmentedControlProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>,\n HasRootRef<HTMLDivElement> {\n options: SegmentedControlOptionInterface[];\n size?: 'm' | 'l';\n name?: string;\n onChange?: (value: SegmentedControlValue) => void;\n value?: SegmentedControlValue;\n defaultValue?: SegmentedControlValue;\n}\n\nconst warn = warnOnce('SegmentedControl');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SegmentedControl\n */\nexport const SegmentedControl = ({\n size = 'l',\n name,\n options,\n getRootRef,\n defaultValue = options[0]?.value,\n children,\n className,\n onChange: onChangeProp,\n value: valueProp,\n ...restProps\n}: SegmentedControlProps) => {\n const id = useId();\n\n const [value, onChange] = useCustomEnsuredControl({\n onChange: onChangeProp,\n value: valueProp,\n defaultValue,\n });\n\n const { sizeY = 'none' } = useAdaptivity();\n\n const actualIndex = options.findIndex((option) => option.value === value);\n\n useIsomorphicLayoutEffect(() => {\n if (actualIndex === -1 && process.env.NODE_ENV === 'development') {\n warn('defaultValue: такого значения нет среди опций!', 'error');\n }\n }, [actualIndex]);\n\n const translateX = `translateX(${100 * actualIndex}%)`;\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['SegmentedControl'],\n sizeY !== SizeType.COMPACT && sizeYClassNames[sizeY],\n size === 'l' && styles['SegmentedControl--size-l'],\n className,\n )}\n ref={getRootRef}\n >\n <div role=\"radiogroup\" className={styles['SegmentedControl__in']}>\n {actualIndex > -1 && (\n <div\n aria-hidden\n className={styles['SegmentedControl__slider']}\n style={{\n width: `${100 / options.length}%`,\n transform: translateX,\n WebkitTransform: translateX,\n }}\n />\n )}\n {options.map(({ label, className: optionClassName, ...optionProps }) => (\n <SegmentedControlOption\n key={`${optionProps.value}`}\n {...optionProps}\n className={classNames(styles['SegmentedControl__option'], optionClassName)}\n name={name ?? id}\n checked={value === optionProps.value}\n onChange={() => onChange(optionProps.value)}\n >\n {label}\n </SegmentedControlOption>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["options","React","classNames","useAdaptivity","useCustomEnsuredControl","useId","SizeType","useIsomorphicLayoutEffect","warnOnce","SegmentedControlOption","sizeYClassNames","none","REGULAR","warn","SegmentedControl","size","name","getRootRef","defaultValue","value","children","className","onChange","onChangeProp","valueProp","restProps","id","sizeY","actualIndex","findIndex","option","process","env","NODE_ENV","translateX","div","COMPACT","ref","role","aria-hidden","style","width","length","transform","WebkitTransform","map","label","optionClassName","optionProps","key","checked"],"mappings":";;;;;IA8CiBA;AA9CjB,YAAYC,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,uBAAuB,QAAQ,gCAAgC;AACxE,SAASC,KAAK,QAAQ,oBAAoB;AAC1C,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,yBAAyB,QAAQ,sCAAsC;AAChF,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,sBAAsB,QAAQ,kDAAkD;AAGzF,IAAMC;IACJC,IAAI;GACHL,SAASM,OAAO;AAsBnB,IAAMC,OAAOL,SAAS;AAEtB;;CAEC,GACD,OAAO,IAAMM,mBAAmB;6BAC9BC,MAAAA,gCAAO,mBACPC,cAAAA,MACAhB,iBAAAA,SACAiB,oBAAAA,yCACAC,cAAAA,iDAAelB,YAAAA,OAAO,CAAC,EAAE,cAAVA,gCAAAA,UAAYmB,KAAK,wBAChCC,kBAAAA,UACAC,mBAAAA,WACAC,AAAUC,sBAAVD,UACAH,AAAOK,mBAAPL,OACGM;QATHV;QACAC;QACAhB;QACAiB;QACAC;QACAE;QACAC;QACAC;QACAH;;IAGA,IAAMO,KAAKrB;IAEX,IAA0BD,4CAAAA,wBAAwB;QAChDkB,UAAUC;QACVJ,OAAOK;QACPN,cAAAA;IACF,QAJOC,QAAmBf,6BAAZkB,WAAYlB;IAM1B,IAA2BD,iBAAAA,wCAAAA,eAAnBwB,OAAAA,0CAAQ;IAEhB,IAAMC,cAAc5B,QAAQ6B,SAAS,CAAC,SAACC;eAAWA,OAAOX,KAAK,KAAKA;;IAEnEZ,0BAA0B;QACxB,IAAIqB,gBAAgB,CAAC,KAAKG,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;YAChEpB,KAAK,kDAAkD;QACzD;IACF,GAAG;QAACe;KAAY;IAEhB,IAAMM,aAAa,AAAC,cAA+B,OAAlB,MAAMN,aAAY;IAEnD,qBACE,oBAACO,+CACKV;QACJJ,WAAWnB,mCAETyB,UAAUrB,SAAS8B,OAAO,IAAI1B,eAAe,CAACiB,MAAM,EACpDZ,SAAS,uCACTM;QAEFgB,KAAKpB;sBAEL,oBAACkB;QAAIG,MAAK;QAAajB,SAAS;OAC7BO,cAAc,CAAC,mBACd,oBAACO;QACCI,eAAAA;QACAlB,SAAS;QACTmB,OAAO;YACLC,OAAO,AAAC,GAAuB,OAArB,MAAMzC,QAAQ0C,MAAM,EAAC;YAC/BC,WAAWT;YACXU,iBAAiBV;QACnB;QAGHlC,QAAQ6C,GAAG,CAAC;YAAGC,eAAAA,OAAOzB,AAAW0B,yBAAX1B,WAA+B2B;YAAtCF;YAAOzB;;eACrB,oBAACZ;YACCwC,KAAK,AAAC,GAAoB,OAAlBD,YAAY7B,KAAK;WACrB6B;YACJ3B,WAAWnB,2CAA+C6C;YAC1D/B,MAAMA,iBAAAA,kBAAAA,OAAQU;YACdwB,SAAS/B,UAAU6B,YAAY7B,KAAK;YACpCG,UAAU;uBAAMA,SAAS0B,YAAY7B,KAAK;;YAEzC2B;IACqB;AAKlC,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { useFocusVisible } from '../../../hooks/useFocusVisible';\nimport { SizeType } from '../../../lib/adaptivity';\nimport { callMultiple } from '../../../lib/callMultiple';\nimport { HasRef } from '../../../types';\nimport { FocusVisible } from '../../FocusVisible/FocusVisible';\nimport { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden';\nimport styles from './SegmentedControlOption.module.css';\n\nconst sizeYClassNames = {\n none: styles['SegmentedControlOption__content--sizeY-none'],\n [SizeType.COMPACT]: styles['SegmentedControlOption__content--sizeY-compact'],\n};\n\nexport interface SegmentedControlOptionProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SegmentedControl\n */\nexport const SegmentedControlOption = ({\n getRef,\n className,\n style,\n children,\n ...restProps\n}: SegmentedControlOptionProps) => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <label\n className={classNames(\n styles['SegmentedControlOption'],\n restProps.checked && styles['SegmentedControlOption--checked'],\n className,\n )}\n style={style}\n >\n <VisuallyHidden\n {...restProps}\n Component=\"input\"\n getRootRef={getRef}\n type=\"radio\"\n onBlur={callMultiple(onBlur, restProps.onBlur)}\n onFocus={callMultiple(onFocus, restProps.onFocus)}\n />\n <span\n className={classNames(\n styles['SegmentedControlOption__content'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n )}\n >\n {children}\n </span>\n <FocusVisible visible={focusVisible} mode=\"inside\" />\n </label>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useFocusVisible","SizeType","callMultiple","FocusVisible","VisuallyHidden","sizeYClassNames","none","COMPACT","SegmentedControlOption","getRef","className","style","children","restProps","focusVisible","onBlur","onFocus","sizeY","label","checked","Component","getRootRef","type","span","REGULAR","visible","mode"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA+B;AAC7D,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SAASC,QAAQ,QAAQ,0BAA0B;AACnD,SAASC,YAAY,QAAQ,4BAA4B;AAEzD,SAASC,YAAY,QAAQ,kCAAkC;AAC/D,SAASC,cAAc,QAAQ,sCAAsC;AAGrE,IAAMC;IACJC,IAAI;GACHL,SAASM;AAOZ;;CAEC,GACD,OAAO,IAAMC,yBAAyB;QACpCC,gBAAAA,QACAC,mBAAAA,WACAC,eAAAA,OACAC,kBAAAA,UACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAA0CZ,mBAAAA,mBAAlCc,eAAkCd,iBAAlCc,cAAcC,SAAoBf,iBAApBe,QAAQC,UAAYhB,iBAAZgB;IAC9B,IAA2BjB,iBAAAA,wCAAAA,eAAnBkB,OAAAA,0CAAQ;IAEhB,qBACE,oBAACC;QACCR,WAAWZ,yCAETe,UAAUM,kDACVT;QAEFC,OAAOA;qBAEP,oBAACP,wDACKS;QACJO,WAAU;QACVC,YAAYZ;QACZa,MAAK;QACLP,QAAQb,aAAaa,QAAQF,UAAUE;QACvCC,SAASd,aAAac,SAASH,UAAUG;uBAE3C,oBAACO;QACCb,WAAWZ,kDAETmB,UAAUhB,SAASuB,WAAWnB,eAAe,CAACY,MAAM;OAGrDL,yBAEH,oBAACT;QAAasB,SAASX;QAAcY,MAAK;;AAGhD,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { useFocusVisible } from '../../../hooks/useFocusVisible';\nimport { SizeType } from '../../../lib/adaptivity';\nimport { callMultiple } from '../../../lib/callMultiple';\nimport { HasRef } from '../../../types';\nimport { FocusVisible } from '../../FocusVisible/FocusVisible';\nimport { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden';\nimport styles from './SegmentedControlOption.module.css';\n\nconst sizeYClassNames = {\n none: styles['SegmentedControlOption__content--sizeY-none'],\n [SizeType.COMPACT]: styles['SegmentedControlOption__content--sizeY-compact'],\n};\n\nexport interface SegmentedControlOptionProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SegmentedControl\n */\nexport const SegmentedControlOption = ({\n getRef,\n className,\n style,\n children,\n ...restProps\n}: SegmentedControlOptionProps) => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <label\n className={classNames(\n styles['SegmentedControlOption'],\n restProps.checked && styles['SegmentedControlOption--checked'],\n className,\n )}\n style={style}\n >\n <VisuallyHidden\n {...restProps}\n Component=\"input\"\n getRootRef={getRef}\n type=\"radio\"\n onBlur={callMultiple(onBlur, restProps.onBlur)}\n onFocus={callMultiple(onFocus, restProps.onFocus)}\n />\n <span\n className={classNames(\n styles['SegmentedControlOption__content'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n )}\n >\n {children}\n </span>\n <FocusVisible visible={focusVisible} mode=\"inside\" />\n </label>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useFocusVisible","SizeType","callMultiple","FocusVisible","VisuallyHidden","sizeYClassNames","none","COMPACT","SegmentedControlOption","getRef","className","style","children","restProps","focusVisible","onBlur","onFocus","sizeY","label","checked","Component","getRootRef","type","span","REGULAR","visible","mode"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA+B;AAC7D,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SAASC,QAAQ,QAAQ,0BAA0B;AACnD,SAASC,YAAY,QAAQ,4BAA4B;AAEzD,SAASC,YAAY,QAAQ,kCAAkC;AAC/D,SAASC,cAAc,QAAQ,sCAAsC;AAGrE,IAAMC;IACJC,IAAI;GACHL,SAASM,OAAO;AAOnB;;CAEC,GACD,OAAO,IAAMC,yBAAyB;QACpCC,gBAAAA,QACAC,mBAAAA,WACAC,eAAAA,OACAC,kBAAAA,UACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAA0CZ,mBAAAA,mBAAlCc,eAAkCd,iBAAlCc,cAAcC,SAAoBf,iBAApBe,QAAQC,UAAYhB,iBAAZgB;IAC9B,IAA2BjB,iBAAAA,wCAAAA,eAAnBkB,OAAAA,0CAAQ;IAEhB,qBACE,oBAACC;QACCR,WAAWZ,yCAETe,UAAUM,OAAO,2CACjBT;QAEFC,OAAOA;qBAEP,oBAACP,wDACKS;QACJO,WAAU;QACVC,YAAYZ;QACZa,MAAK;QACLP,QAAQb,aAAaa,QAAQF,UAAUE,MAAM;QAC7CC,SAASd,aAAac,SAASH,UAAUG,OAAO;uBAElD,oBAACO;QACCb,WAAWZ,kDAETmB,UAAUhB,SAASuB,OAAO,IAAInB,eAAe,CAACY,MAAM;OAGrDL,yBAEH,oBAACT;QAAasB,SAASX;QAAcY,MAAK;;AAGhD,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useAdaptivityHasPointer } from '../../hooks/useAdaptivityHasPointer';\nimport { CustomSelect, SelectProps } from '../CustomSelect/CustomSelect';\nimport { NativeSelect } from '../NativeSelect/NativeSelect';\n\nexport type SelectType = 'default' | 'plain' | 'accent';\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Select\n */\nexport const Select = ({ children, ...props }: SelectProps) => {\n const {\n options = [],\n searchable,\n emptyText,\n onInputChange,\n filterFn,\n popupDirection,\n renderOption,\n renderDropdown,\n fetching,\n onClose,\n onOpen,\n icon,\n ClearButton,\n allowClearButton,\n dropdownOffsetDistance,\n fixDropdownWidth,\n forceDropdownPortal,\n selectType,\n autoHideScrollbar,\n autoHideScrollbarDelay,\n ...nativeProps // TODO: https://github.com/Microsoft/TypeScript/issues/12936\n } = props;\n\n const hasPointer = useAdaptivityHasPointer();\n\n return (\n <React.Fragment>\n {(hasPointer === undefined || hasPointer) && <CustomSelect {...props} />}\n {(hasPointer === undefined || !hasPointer) && (\n <NativeSelect {...nativeProps}>\n {options.map(({ label, value }) => (\n <option value={value} key={`${value}`}>\n {label}\n </option>\n ))}\n </NativeSelect>\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","useAdaptivityHasPointer","CustomSelect","NativeSelect","Select","children","props","options","searchable","emptyText","onInputChange","filterFn","popupDirection","renderOption","renderDropdown","fetching","onClose","onOpen","icon","ClearButton","allowClearButton","dropdownOffsetDistance","fixDropdownWidth","forceDropdownPortal","selectType","autoHideScrollbar","autoHideScrollbarDelay","nativeProps","hasPointer","Fragment","undefined","map","label","value","option","key"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,uBAAuB,QAAQ,sCAAsC;AAC9E,SAASC,YAAY,QAAqB,+BAA+B;AACzE,SAASC,YAAY,QAAQ,+BAA+B;AAI5D;;CAEC,GACD,OAAO,IAAMC,SAAS;QAAGC,kBAAAA,UAAaC;QAAbD;;IACvB,qBAsBIC,MArBFC,SAAAA,sCAAU,EAAE,mBACZC,aAoBEF,MApBFE,YACAC,YAmBEH,MAnBFG,WACAC,gBAkBEJ,MAlBFI,eACAC,WAiBEL,MAjBFK,UACAC,iBAgBEN,MAhBFM,gBACAC,eAeEP,MAfFO,cACAC,iBAcER,MAdFQ,gBACAC,WAaET,MAbFS,UACAC,UAYEV,MAZFU,SACAC,SAWEX,MAXFW,QACAC,OAUEZ,MAVFY,MACAC,cASEb,MATFa,aACAC,mBAQEd,MARFc,kBACAC,yBAOEf,MAPFe,wBACAC,mBAMEhB,MANFgB,kBACAC,sBAKEjB,MALFiB,qBACAC,aAIElB,MAJFkB,YACAC,oBAGEnB,MAHFmB,mBACAC,yBAEEpB,MAFFoB,wBACGC,YAAY,6DAA6D;kCAC1ErB;QArBFC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAIF,IAAME,aAAa3B;IAEnB,qBACE,oBAACD,MAAM6B,gBACJ,AAACD,CAAAA,eAAeE,aAAaF,UAAS,mBAAM,oBAAC1B,cAAiBI,QAC9D,AAACsB,CAAAA,eAAeE,aAAa,CAACF,UAAS,mBACtC,oBAACzB,cAAiBwB,aACfpB,QAAQwB,IAAI;YAAGC,cAAAA,OAAOC,cAAAA;6BACrB,oBAACC;YAAOD,OAAOA;YAAOE,KAAK,AAAC,GAAQ,OAANF;WAC3BD;;AAOf,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useAdaptivityHasPointer } from '../../hooks/useAdaptivityHasPointer';\nimport { CustomSelect, SelectProps } from '../CustomSelect/CustomSelect';\nimport { NativeSelect } from '../NativeSelect/NativeSelect';\n\nexport type SelectType = 'default' | 'plain' | 'accent';\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Select\n */\nexport const Select = ({ children, ...props }: SelectProps) => {\n const {\n options = [],\n searchable,\n emptyText,\n onInputChange,\n filterFn,\n popupDirection,\n renderOption,\n renderDropdown,\n fetching,\n onClose,\n onOpen,\n icon,\n ClearButton,\n allowClearButton,\n dropdownOffsetDistance,\n fixDropdownWidth,\n forceDropdownPortal,\n selectType,\n autoHideScrollbar,\n autoHideScrollbarDelay,\n ...nativeProps // TODO: https://github.com/Microsoft/TypeScript/issues/12936\n } = props;\n\n const hasPointer = useAdaptivityHasPointer();\n\n return (\n <React.Fragment>\n {(hasPointer === undefined || hasPointer) && <CustomSelect {...props} />}\n {(hasPointer === undefined || !hasPointer) && (\n <NativeSelect {...nativeProps}>\n {options.map(({ label, value }) => (\n <option value={value} key={`${value}`}>\n {label}\n </option>\n ))}\n </NativeSelect>\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","useAdaptivityHasPointer","CustomSelect","NativeSelect","Select","children","props","options","searchable","emptyText","onInputChange","filterFn","popupDirection","renderOption","renderDropdown","fetching","onClose","onOpen","icon","ClearButton","allowClearButton","dropdownOffsetDistance","fixDropdownWidth","forceDropdownPortal","selectType","autoHideScrollbar","autoHideScrollbarDelay","nativeProps","hasPointer","Fragment","undefined","map","label","value","option","key"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,uBAAuB,QAAQ,sCAAsC;AAC9E,SAASC,YAAY,QAAqB,+BAA+B;AACzE,SAASC,YAAY,QAAQ,+BAA+B;AAI5D;;CAEC,GACD,OAAO,IAAMC,SAAS;QAAGC,kBAAAA,UAAaC;QAAbD;;IACvB,qBAsBIC,MArBFC,SAAAA,sCAAU,EAAE,mBACZC,aAoBEF,MApBFE,YACAC,YAmBEH,MAnBFG,WACAC,gBAkBEJ,MAlBFI,eACAC,WAiBEL,MAjBFK,UACAC,iBAgBEN,MAhBFM,gBACAC,eAeEP,MAfFO,cACAC,iBAcER,MAdFQ,gBACAC,WAaET,MAbFS,UACAC,UAYEV,MAZFU,SACAC,SAWEX,MAXFW,QACAC,OAUEZ,MAVFY,MACAC,cASEb,MATFa,aACAC,mBAQEd,MARFc,kBACAC,yBAOEf,MAPFe,wBACAC,mBAMEhB,MANFgB,kBACAC,sBAKEjB,MALFiB,qBACAC,aAIElB,MAJFkB,YACAC,oBAGEnB,MAHFmB,mBACAC,yBAEEpB,MAFFoB,wBACGC,YAAY,6DAA6D;kCAC1ErB;QArBFC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAIF,IAAME,aAAa3B;IAEnB,qBACE,oBAACD,MAAM6B,QAAQ,QACZ,AAACD,CAAAA,eAAeE,aAAaF,UAAS,mBAAM,oBAAC1B,cAAiBI,QAC9D,AAACsB,CAAAA,eAAeE,aAAa,CAACF,UAAS,mBACtC,oBAACzB,cAAiBwB,aACfpB,QAAQwB,GAAG,CAAC;YAAGC,cAAAA,OAAOC,cAAAA;6BACrB,oBAACC;YAAOD,OAAOA;YAAOE,KAAK,AAAC,GAAQ,OAANF;WAC3BD;;AAOf,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SelectMimicry/SelectMimicry.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { SizeType } from '../../lib/adaptivity';\nimport { getFormFieldModeFromSelectType } from '../../lib/select';\nimport { HasAlign, HasRootRef } from '../../types';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport type { SelectType } from '../Select/Select';\nimport { SelectTypography } from '../SelectTypography/SelectTypography';\nimport styles from '../Select/Select.module.css';\n\nconst sizeYClassNames = {\n none: styles['Select--sizeY-none'],\n [SizeType.COMPACT]: styles['Select--sizeY-compact'],\n};\n\nexport interface SelectMimicryProps\n extends React.HTMLAttributes<HTMLElement>,\n HasAlign,\n HasRootRef<HTMLElement>,\n Pick<FormFieldProps, 'before' | 'after' | 'status'> {\n multiline?: boolean;\n disabled?: boolean;\n selectType?: SelectType;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SelectMimicry\n */\nexport const SelectMimicry = ({\n tabIndex = 0,\n placeholder,\n children,\n align,\n getRootRef,\n multiline,\n disabled,\n onClick,\n before,\n after = <DropdownIcon />,\n selectType = 'default',\n status,\n className,\n ...restProps\n}: SelectMimicryProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n const title = children || placeholder;\n\n return (\n <FormField\n {...restProps}\n tabIndex={disabled ? undefined : tabIndex}\n className={classNames(\n styles['Select'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n !children && styles['Select--empty'],\n multiline && styles['Select--multiline'],\n align === 'center' && styles['Select--align-center'],\n align === 'right' && styles['Select--align-right'],\n before && styles['Select--hasBefore'],\n className,\n )}\n getRootRef={getRootRef}\n onClick={disabled ? undefined : onClick}\n disabled={disabled}\n before={before}\n after={after}\n mode={getFormFieldModeFromSelectType(selectType)}\n status={status}\n >\n <div className={styles['Select__container']}>\n <SelectTypography selectType={selectType} className={styles['Select__title']}>\n {title}\n </SelectTypography>\n </div>\n </FormField>\n );\n};\n"],"names":["React","classNames","useAdaptivity","SizeType","getFormFieldModeFromSelectType","DropdownIcon","FormField","SelectTypography","sizeYClassNames","none","COMPACT","SelectMimicry","tabIndex","placeholder","children","align","getRootRef","multiline","disabled","onClick","before","after","selectType","status","className","restProps","sizeY","title","undefined","REGULAR","mode","div"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,8BAA8B,QAAQ,mBAAmB;AAElE,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,SAAS,QAAwB,yBAAyB;AAEnE,SAASC,gBAAgB,QAAQ,uCAAuC;AAGxE,IAAMC;IACJC,IAAI;GACHN,SAASO;AAaZ;;CAEC,GACD,OAAO,IAAMC,gBAAgB;iCAC3BC,UAAAA,wCAAW,qBACXC,qBAAAA,aACAC,kBAAAA,UACAC,eAAAA,OACAC,oBAAAA,YACAC,mBAAAA,WACAC,kBAAAA,UACAC,iBAAAA,SACAC,gBAAAA,8BACAC,OAAAA,gDAAQ,oBAAChB,+DACTiB,YAAAA,4CAAa,+BACbC,gBAAAA,QACAC,mBAAAA,WACGC;QAbHb;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAA2BtB,iBAAAA,wCAAAA,eAAnBwB,OAAAA,0CAAQ;IAChB,IAAMC,QAAQb,YAAYD;IAE1B,qBACE,oBAACP,mDACKmB;QACJb,UAAUM,WAAWU,YAAYhB;QACjCY,WAAWvB,yBAETyB,UAAUvB,SAAS0B,WAAWrB,eAAe,CAACkB,MAAM,EACpD,CAACZ,iCACDG,sCACAF,UAAU,wCACVA,UAAU,sCACVK,mCACAI;QAEFR,YAAYA;QACZG,SAASD,WAAWU,YAAYT;QAChCD,UAAUA;QACVE,QAAQA;QACRC,OAAOA;QACPS,MAAM1B,+BAA+BkB;QACrCC,QAAQA;sBAER,oBAACQ;QAAIP,SAAS;qBACZ,oBAACjB;QAAiBe,YAAYA;QAAYE,SAAS;OAChDG;AAKX,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/SelectMimicry/SelectMimicry.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { SizeType } from '../../lib/adaptivity';\nimport { getFormFieldModeFromSelectType } from '../../lib/select';\nimport { HasAlign, HasRootRef } from '../../types';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport type { SelectType } from '../Select/Select';\nimport { SelectTypography } from '../SelectTypography/SelectTypography';\nimport styles from '../Select/Select.module.css';\n\nconst sizeYClassNames = {\n none: styles['Select--sizeY-none'],\n [SizeType.COMPACT]: styles['Select--sizeY-compact'],\n};\n\nexport interface SelectMimicryProps\n extends React.HTMLAttributes<HTMLElement>,\n HasAlign,\n HasRootRef<HTMLElement>,\n Pick<FormFieldProps, 'before' | 'after' | 'status'> {\n multiline?: boolean;\n disabled?: boolean;\n selectType?: SelectType;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SelectMimicry\n */\nexport const SelectMimicry = ({\n tabIndex = 0,\n placeholder,\n children,\n align,\n getRootRef,\n multiline,\n disabled,\n onClick,\n before,\n after = <DropdownIcon />,\n selectType = 'default',\n status,\n className,\n ...restProps\n}: SelectMimicryProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n const title = children || placeholder;\n\n return (\n <FormField\n {...restProps}\n tabIndex={disabled ? undefined : tabIndex}\n className={classNames(\n styles['Select'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n !children && styles['Select--empty'],\n multiline && styles['Select--multiline'],\n align === 'center' && styles['Select--align-center'],\n align === 'right' && styles['Select--align-right'],\n before && styles['Select--hasBefore'],\n className,\n )}\n getRootRef={getRootRef}\n onClick={disabled ? undefined : onClick}\n disabled={disabled}\n before={before}\n after={after}\n mode={getFormFieldModeFromSelectType(selectType)}\n status={status}\n >\n <div className={styles['Select__container']}>\n <SelectTypography selectType={selectType} className={styles['Select__title']}>\n {title}\n </SelectTypography>\n </div>\n </FormField>\n );\n};\n"],"names":["React","classNames","useAdaptivity","SizeType","getFormFieldModeFromSelectType","DropdownIcon","FormField","SelectTypography","sizeYClassNames","none","COMPACT","SelectMimicry","tabIndex","placeholder","children","align","getRootRef","multiline","disabled","onClick","before","after","selectType","status","className","restProps","sizeY","title","undefined","REGULAR","mode","div"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,8BAA8B,QAAQ,mBAAmB;AAElE,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,SAAS,QAAwB,yBAAyB;AAEnE,SAASC,gBAAgB,QAAQ,uCAAuC;AAGxE,IAAMC;IACJC,IAAI;GACHN,SAASO,OAAO;AAanB;;CAEC,GACD,OAAO,IAAMC,gBAAgB;iCAC3BC,UAAAA,wCAAW,qBACXC,qBAAAA,aACAC,kBAAAA,UACAC,eAAAA,OACAC,oBAAAA,YACAC,mBAAAA,WACAC,kBAAAA,UACAC,iBAAAA,SACAC,gBAAAA,8BACAC,OAAAA,gDAAQ,oBAAChB,+DACTiB,YAAAA,4CAAa,+BACbC,gBAAAA,QACAC,mBAAAA,WACGC;QAbHb;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAA2BtB,iBAAAA,wCAAAA,eAAnBwB,OAAAA,0CAAQ;IAChB,IAAMC,QAAQb,YAAYD;IAE1B,qBACE,oBAACP,mDACKmB;QACJb,UAAUM,WAAWU,YAAYhB;QACjCY,WAAWvB,yBAETyB,UAAUvB,SAAS0B,OAAO,IAAIrB,eAAe,CAACkB,MAAM,EACpD,CAACZ,iCACDG,sCACAF,UAAU,wCACVA,UAAU,sCACVK,mCACAI;QAEFR,YAAYA;QACZG,SAASD,WAAWU,YAAYT;QAChCD,UAAUA;QACVE,QAAQA;QACRC,OAAOA;QACPS,MAAM1B,+BAA+BkB;QACrCC,QAAQA;sBAER,oBAACQ;QAAIP,SAAS;qBACZ,oBAACjB;QAAiBe,YAAYA;QAAYE,SAAS;OAChDG;AAKX,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SelectTypography/SelectTypography.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 { HasChildren } from '../../types';\nimport type { SelectType } from '../Select/Select';\nimport styles from './SelectTypography.module.css';\n\nconst sizeYClassNames = {\n none: styles['SelectTypography--sizeY-none'],\n compact: styles['SelectTypography--sizeY-compact'],\n};\n\nconst platformClassNames = {\n vkcom: styles['SelectTypography--vkcom'],\n android: styles['SelectTypography--android'],\n};\n\nexport interface SelectTypographyProps extends React.HTMLAttributes<HTMLSpanElement>, HasChildren {\n selectType?: SelectType;\n}\n\n/**\n * @private\n */\nexport const SelectTypography = ({\n selectType = 'default',\n children,\n className,\n ...restProps\n}: SelectTypographyProps) => {\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <span\n className={classNames(\n styles['SelectTypography'],\n platformClassNames.hasOwnProperty(platform) && platformClassNames[platform],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n selectType === 'accent' && styles['SelectTypography--selectType-accent'],\n className,\n )}\n {...restProps}\n >\n {children}\n </span>\n );\n};\n"],"names":["React","classNames","useAdaptivity","usePlatform","SizeType","sizeYClassNames","none","compact","platformClassNames","vkcom","android","SelectTypography","selectType","children","className","restProps","platform","sizeY","span","hasOwnProperty","REGULAR"],"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;AAKhD,IAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AAEA,IAAMC,qBAAqB;IACzBC,KAAK;IACLC,OAAO;AACT;AAMA;;CAEC,GACD,OAAO,IAAMC,mBAAmB;mCAC9BC,YAAAA,4CAAa,+BACbC,kBAAAA,UACAC,mBAAAA,WACGC;QAHHH;QACAC;QACAC;;IAGA,IAAME,WAAWb;IACjB,IAA2BD,iBAAAA,wCAAAA,eAAnBe,OAAAA,0CAAQ;IAEhB,qBACE,oBAACC;QACCJ,WAAWb,mCAETO,mBAAmBW,eAAeH,aAAaR,kBAAkB,CAACQ,SAAS,EAC3EC,UAAUb,SAASgB,WAAWf,eAAe,CAACY,MAAM,EACpDL,eAAe,uDACfE;OAEEC,YAEHF;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/SelectTypography/SelectTypography.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 { HasChildren } from '../../types';\nimport type { SelectType } from '../Select/Select';\nimport styles from './SelectTypography.module.css';\n\nconst sizeYClassNames = {\n none: styles['SelectTypography--sizeY-none'],\n compact: styles['SelectTypography--sizeY-compact'],\n};\n\nconst platformClassNames = {\n vkcom: styles['SelectTypography--vkcom'],\n android: styles['SelectTypography--android'],\n};\n\nexport interface SelectTypographyProps extends React.HTMLAttributes<HTMLSpanElement>, HasChildren {\n selectType?: SelectType;\n}\n\n/**\n * @private\n */\nexport const SelectTypography = ({\n selectType = 'default',\n children,\n className,\n ...restProps\n}: SelectTypographyProps) => {\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <span\n className={classNames(\n styles['SelectTypography'],\n platformClassNames.hasOwnProperty(platform) && platformClassNames[platform],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n selectType === 'accent' && styles['SelectTypography--selectType-accent'],\n className,\n )}\n {...restProps}\n >\n {children}\n </span>\n );\n};\n"],"names":["React","classNames","useAdaptivity","usePlatform","SizeType","sizeYClassNames","none","compact","platformClassNames","vkcom","android","SelectTypography","selectType","children","className","restProps","platform","sizeY","span","hasOwnProperty","REGULAR"],"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;AAKhD,IAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AAEA,IAAMC,qBAAqB;IACzBC,KAAK;IACLC,OAAO;AACT;AAMA;;CAEC,GACD,OAAO,IAAMC,mBAAmB;mCAC9BC,YAAAA,4CAAa,+BACbC,kBAAAA,UACAC,mBAAAA,WACGC;QAHHH;QACAC;QACAC;;IAGA,IAAME,WAAWb;IACjB,IAA2BD,iBAAAA,wCAAAA,eAAnBe,OAAAA,0CAAQ;IAEhB,qBACE,oBAACC;QACCJ,WAAWb,mCAETO,mBAAmBW,cAAc,CAACH,aAAaR,kBAAkB,CAACQ,SAAS,EAC3EC,UAAUb,SAASgB,OAAO,IAAIf,eAAe,CAACY,MAAM,EACpDL,eAAe,uDACfE;OAEEC,YAEHF;AAGP,EAAE"}
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ export interface ChevronProps extends Omit<React.SVGProps<SVGSVGElement>, 'width' | 'height'> {
3
+ size?: 's' | 'm';
4
+ }
5
+ export declare const Chevron: ({ size, ...restProps }: ChevronProps) => React.JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
2
+ import * as React from "react";
3
+ import { Icon16Chevron, Icon24ChevronCompactRight } from "@vkontakte/icons";
4
+ var iconSize = {
5
+ s: Icon16Chevron,
6
+ m: Icon24ChevronCompactRight
7
+ };
8
+ export var Chevron = function(_param) {
9
+ var _param_size = _param.size, size = _param_size === void 0 ? "m" : _param_size, restProps = _object_without_properties(_param, [
10
+ "size"
11
+ ]);
12
+ var Icon = iconSize[size];
13
+ return /*#__PURE__*/ React.createElement(Icon, restProps);
14
+ };
15
+
16
+ //# sourceMappingURL=Chevron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/SimpleCell/Chevron/Chevron.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon16Chevron, Icon24ChevronCompactRight } from '@vkontakte/icons';\n\nconst iconSize = {\n s: Icon16Chevron,\n m: Icon24ChevronCompactRight,\n};\n\nexport interface ChevronProps extends Omit<React.SVGProps<SVGSVGElement>, 'width' | 'height'> {\n size?: 's' | 'm';\n}\n\nexport const Chevron = ({ size = 'm', ...restProps }: ChevronProps) => {\n const Icon = iconSize[size];\n\n return <Icon {...restProps} />;\n};\n"],"names":["React","Icon16Chevron","Icon24ChevronCompactRight","iconSize","s","m","Chevron","size","restProps","Icon"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,aAAa,EAAEC,yBAAyB,QAAQ,mBAAmB;AAE5E,IAAMC,WAAW;IACfC,GAAGH;IACHI,GAAGH;AACL;AAMA,OAAO,IAAMI,UAAU;6BAAGC,MAAAA,gCAAO,mBAAQC;QAAfD;;IACxB,IAAME,OAAON,QAAQ,CAACI,KAAK;IAE3B,qBAAO,oBAACE,MAASD;AACnB,EAAE"}
@@ -49,7 +49,11 @@ export interface SimpleCellOwnProps extends HasComponent {
49
49
  /**
50
50
  * В iOS добавляет chevron справа. Передавать `true`, если предполагается переход при клике по ячейке.
51
51
  */
52
- expandable?: boolean;
52
+ expandable?: boolean | 'auto' | 'always';
53
+ /**
54
+ * Размер chevron
55
+ */
56
+ chevronSize?: 's' | 'm';
53
57
  /**
54
58
  * Включает многострочный режим для отображения текста
55
59
  */
@@ -60,4 +64,4 @@ export interface SimpleCellProps extends SimpleCellOwnProps, TappableProps {
60
64
  /**
61
65
  * @see https://vkcom.github.io/VKUI/#/SimpleCell
62
66
  */
63
- export declare const SimpleCell: ({ badgeBeforeTitle, badgeAfterTitle, badgeBeforeSubtitle, badgeAfterSubtitle, before, indicator, children, after, expandable, multiline, subhead, subtitle, extraSubtitle, className, ...restProps }: SimpleCellProps) => React.JSX.Element;
67
+ export declare const SimpleCell: ({ badgeBeforeTitle, badgeAfterTitle, badgeBeforeSubtitle, badgeAfterSubtitle, before, indicator, children, after, expandable, multiline, subhead, subtitle, extraSubtitle, className, chevronSize, ...restProps }: SimpleCellProps) => React.JSX.Element;