@vkontakte/vkui 4.36.1 → 4.37.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 (888) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +221 -262
  4. package/.cache/ts/src/components/AppRoot/AppRoot.d.ts +1 -1
  5. package/.cache/ts/src/components/Calendar/Calendar.d.ts +3 -2
  6. package/.cache/ts/src/components/CalendarDay/CalendarDay.d.ts +4 -2
  7. package/.cache/ts/src/components/CalendarDays/CalendarDays.d.ts +3 -1
  8. package/.cache/ts/src/components/CalendarHeader/CalendarHeader.d.ts +6 -1
  9. package/.cache/ts/src/components/Checkbox/Checkbox.d.ts +1 -1
  10. package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +2 -0
  11. package/.cache/ts/src/components/Group/Group.d.ts +5 -1
  12. package/.cache/ts/src/components/Radio/Radio.d.ts +1 -1
  13. package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +34 -1
  14. package/.cache/ts/src/components/SubnavigationButton/SubnavigationButton.d.ts +3 -2
  15. package/.cache/ts/src/components/Tappable/Tappable.d.ts +2 -1
  16. package/.cache/ts/src/components/UsersStack/UsersStack.d.ts +7 -1
  17. package/.cache/ts/src/index.d.ts +2 -0
  18. package/.cache/ts/src/tokenized/index.d.ts +2 -0
  19. package/.eslintrc.json +2 -1
  20. package/dist/appearance/constants.js.map +1 -1
  21. package/dist/cjs/appearance/constants.js.map +1 -1
  22. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  23. package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
  24. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  25. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  26. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  27. package/dist/cjs/components/ActionSheet/types.js.map +1 -1
  28. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  29. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  30. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  31. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  32. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  33. package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
  34. package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
  35. package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
  36. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  37. package/dist/cjs/components/AppearanceProvider/AppearanceProviderContext.js.map +1 -1
  38. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  39. package/dist/cjs/components/Badge/Badge.js.map +1 -1
  40. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  41. package/dist/cjs/components/BaseGallery/BaseGallery.js +11 -10
  42. package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
  43. package/dist/cjs/components/BaseGallery/helpers.js.map +1 -1
  44. package/dist/cjs/components/BaseGallery/types.js.map +1 -1
  45. package/dist/cjs/components/Button/Button.js.map +1 -1
  46. package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
  47. package/dist/cjs/components/Calendar/Calendar.js +9 -3
  48. package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
  49. package/dist/cjs/components/CalendarDay/CalendarDay.js +11 -3
  50. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  51. package/dist/cjs/components/CalendarDays/CalendarDays.js +4 -3
  52. package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
  53. package/dist/cjs/components/CalendarHeader/CalendarHeader.js +10 -4
  54. package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
  55. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
  56. package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
  57. package/dist/cjs/components/Card/Card.js.map +1 -1
  58. package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
  59. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  60. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  61. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  62. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
  63. package/dist/cjs/components/Cell/useDraggable.js.map +1 -1
  64. package/dist/cjs/components/CellButton/CellButton.js.map +1 -1
  65. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  66. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  67. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  68. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  69. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +6 -2
  70. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  71. package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
  72. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  73. package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
  74. package/dist/cjs/components/Counter/Counter.js.map +1 -1
  75. package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
  76. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  77. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  78. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  79. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  80. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  81. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  82. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  83. package/dist/cjs/components/Div/Div.js.map +1 -1
  84. package/dist/cjs/components/Dropdown/Dropdown.js.map +1 -1
  85. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
  86. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  87. package/dist/cjs/components/Epic/ScrollSaver.js.map +1 -1
  88. package/dist/cjs/components/File/File.js.map +1 -1
  89. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  90. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  91. package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
  92. package/dist/cjs/components/Footer/Footer.js.map +1 -1
  93. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  94. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  95. package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
  96. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  97. package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
  98. package/dist/cjs/components/Gallery/Gallery.js +2 -0
  99. package/dist/cjs/components/Gallery/Gallery.js.map +1 -1
  100. package/dist/cjs/components/Gradient/Gradient.js.map +1 -1
  101. package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -1
  102. package/dist/cjs/components/Group/Group.js +4 -2
  103. package/dist/cjs/components/Group/Group.js.map +1 -1
  104. package/dist/cjs/components/Header/Header.js.map +1 -1
  105. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  106. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  107. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  108. package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -1
  109. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  110. package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
  111. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js.map +1 -1
  112. package/dist/cjs/components/Input/Input.js.map +1 -1
  113. package/dist/cjs/components/InputLike/InputLike.js.map +1 -1
  114. package/dist/cjs/components/InputLike/InputLikeDivider.js.map +1 -1
  115. package/dist/cjs/components/Link/Link.js.map +1 -1
  116. package/dist/cjs/components/List/List.js.map +1 -1
  117. package/dist/cjs/components/List/ListContext.js.map +1 -1
  118. package/dist/cjs/components/LocaleProviderContext/LocaleProviderContext.js.map +1 -1
  119. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  120. package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
  121. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  122. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  123. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  124. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  125. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  126. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  127. package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
  128. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  129. package/dist/cjs/components/ModalRoot/constants.js.map +1 -1
  130. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  131. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
  132. package/dist/cjs/components/ModalRoot/withModalRootContext.js.map +1 -1
  133. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  134. package/dist/cjs/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
  135. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  136. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  137. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  138. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  139. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  140. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  141. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  142. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  143. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  144. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  145. package/dist/cjs/components/PanelSpinner/PanelSpinner.js.map +1 -1
  146. package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
  147. package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
  148. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  149. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  150. package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -1
  151. package/dist/cjs/components/Progress/Progress.js.map +1 -1
  152. package/dist/cjs/components/PromoBanner/PromoBanner.js +1 -1
  153. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  154. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  155. package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  156. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  157. package/dist/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  158. package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -1
  159. package/dist/cjs/components/RangeSlider/UniversalSlider.js.map +1 -1
  160. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  161. package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
  162. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
  163. package/dist/cjs/components/Root/Root.js.map +1 -1
  164. package/dist/cjs/components/ScreenSpinner/Icon48CancelCircle.js.map +1 -1
  165. package/dist/cjs/components/ScreenSpinner/Icon48DoneOutline.js.map +1 -1
  166. package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  167. package/dist/cjs/components/Search/Search.js.map +1 -1
  168. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  169. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  170. package/dist/cjs/components/Select/Select.js.map +1 -1
  171. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  172. package/dist/cjs/components/Separator/Separator.js.map +1 -1
  173. package/dist/cjs/components/SimpleCell/SimpleCell.js +30 -8
  174. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  175. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
  176. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  177. package/dist/cjs/components/SliderSwitch/SliderSwitch.js.map +1 -1
  178. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  179. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  180. package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
  181. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  182. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  183. package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
  184. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  185. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +16 -12
  186. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  187. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  188. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  189. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  190. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  191. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  192. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  193. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
  194. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  195. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  196. package/dist/cjs/components/Tooltip/TooltipContainer.js.map +1 -1
  197. package/dist/cjs/components/Touch/Touch.js.map +1 -1
  198. package/dist/cjs/components/Touch/TouchContext.js.map +1 -1
  199. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  200. package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
  201. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  202. package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
  203. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  204. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  205. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  206. package/dist/cjs/components/UsersStack/UsersStack.js +5 -4
  207. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  208. package/dist/cjs/components/View/View.js.map +1 -1
  209. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  210. package/dist/cjs/components/View/utils.js.map +1 -1
  211. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js +1 -4
  212. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  213. package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
  214. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  215. package/dist/cjs/helpers/avatar.js.map +1 -1
  216. package/dist/cjs/helpers/getClassName.js.map +1 -1
  217. package/dist/cjs/helpers/getScheme.js.map +1 -1
  218. package/dist/cjs/helpers/math.js.map +1 -1
  219. package/dist/cjs/helpers/scheme.js.map +1 -1
  220. package/dist/cjs/hoc/withAdaptivity.js.map +1 -1
  221. package/dist/cjs/hoc/withContext.js.map +1 -1
  222. package/dist/cjs/hoc/withInsets.js.map +1 -1
  223. package/dist/cjs/hoc/withPlatform.js.map +1 -1
  224. package/dist/cjs/hooks/useAdaptivity.js.map +1 -1
  225. package/dist/cjs/hooks/useAppearance.js.map +1 -1
  226. package/dist/cjs/hooks/useBooleanState.js.map +1 -1
  227. package/dist/cjs/hooks/useBridgeAdaptivity.js.map +1 -1
  228. package/dist/cjs/hooks/useBrowserInfo.js.map +1 -1
  229. package/dist/cjs/hooks/useCalendar.js.map +1 -1
  230. package/dist/cjs/hooks/useChipsInput.js.map +1 -1
  231. package/dist/cjs/hooks/useChipsSelect.js.map +1 -1
  232. package/dist/cjs/hooks/useDateInput.js.map +1 -1
  233. package/dist/cjs/hooks/useEffectDev.js.map +1 -1
  234. package/dist/cjs/hooks/useEnsuredControl.js.map +1 -1
  235. package/dist/cjs/hooks/useEventListener.js.map +1 -1
  236. package/dist/cjs/hooks/useExternRef.js.map +1 -1
  237. package/dist/cjs/hooks/useFocusVisible.js.map +1 -1
  238. package/dist/cjs/hooks/useGlobalEventListener.js.map +1 -1
  239. package/dist/cjs/hooks/useInsets.js.map +1 -1
  240. package/dist/cjs/hooks/useKeyboard.js.map +1 -1
  241. package/dist/cjs/hooks/useKeyboardInputTracker.js.map +1 -1
  242. package/dist/cjs/hooks/useObjectMemo.js.map +1 -1
  243. package/dist/cjs/hooks/useOrientationChange.js.map +1 -1
  244. package/dist/cjs/hooks/usePagination.js.map +1 -1
  245. package/dist/cjs/hooks/usePatchChildrenRef.js.map +1 -1
  246. package/dist/cjs/hooks/usePlatform.js.map +1 -1
  247. package/dist/cjs/hooks/usePrevious.js.map +1 -1
  248. package/dist/cjs/hooks/useTimeout.js.map +1 -1
  249. package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
  250. package/dist/cjs/index.js +8 -0
  251. package/dist/cjs/index.js.map +1 -1
  252. package/dist/cjs/lib/SSR.js.map +1 -1
  253. package/dist/cjs/lib/accessibility.js.map +1 -1
  254. package/dist/cjs/lib/animate.js.map +1 -1
  255. package/dist/cjs/lib/browser.js.map +1 -1
  256. package/dist/cjs/lib/calendar.js.map +1 -1
  257. package/dist/cjs/lib/callMultiple.js.map +1 -1
  258. package/dist/cjs/lib/classNames.js.map +1 -1
  259. package/dist/cjs/lib/classScopingMode.js.map +1 -1
  260. package/dist/cjs/lib/date.js.map +1 -1
  261. package/dist/cjs/lib/dom.js.map +1 -1
  262. package/dist/cjs/lib/fx.js.map +1 -1
  263. package/dist/cjs/lib/getNavId.js.map +1 -1
  264. package/dist/cjs/lib/is.js.map +1 -1
  265. package/dist/cjs/lib/isRefObject.js.map +1 -1
  266. package/dist/cjs/lib/jsxRuntime.d.js.map +1 -1
  267. package/dist/cjs/lib/jsxRuntime.js.map +1 -1
  268. package/dist/cjs/lib/offset.js.map +1 -1
  269. package/dist/cjs/lib/platform.js.map +1 -1
  270. package/dist/cjs/lib/polyfills.js.map +1 -1
  271. package/dist/cjs/lib/prefixClass.js.map +1 -1
  272. package/dist/cjs/lib/removeObjectKeys.js.map +1 -1
  273. package/dist/cjs/lib/select.js.map +1 -1
  274. package/dist/cjs/lib/styles.js.map +1 -1
  275. package/dist/cjs/lib/supportEvents.js.map +1 -1
  276. package/dist/cjs/lib/taptic.js.map +1 -1
  277. package/dist/cjs/lib/testing.js.map +1 -1
  278. package/dist/cjs/lib/touch.js.map +1 -1
  279. package/dist/cjs/lib/useIsomorphicLayoutEffect.js.map +1 -1
  280. package/dist/cjs/lib/utils.js.map +1 -1
  281. package/dist/cjs/lib/warnOnce.js.map +1 -1
  282. package/dist/cjs/tokenized/index.js +8 -0
  283. package/dist/cjs/tokenized/index.js.map +1 -1
  284. package/dist/cjs/types.js.map +1 -1
  285. package/dist/cjs/unstable/index.js.map +1 -1
  286. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  287. package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
  288. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  289. package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  290. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  291. package/dist/components/ActionSheet/types.js.map +1 -1
  292. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  293. package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  294. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  295. package/dist/components/Alert/Alert.js.map +1 -1
  296. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  297. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  298. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  299. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  300. package/dist/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  301. package/dist/components/AppearanceProvider/AppearanceProviderContext.js.map +1 -1
  302. package/dist/components/Avatar/Avatar.js.map +1 -1
  303. package/dist/components/Badge/Badge.js.map +1 -1
  304. package/dist/components/Banner/Banner.js.map +1 -1
  305. package/dist/components/BaseGallery/BaseGallery.js +11 -10
  306. package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
  307. package/dist/components/BaseGallery/helpers.js.map +1 -1
  308. package/dist/components/BaseGallery/types.js.map +1 -1
  309. package/dist/components/Button/Button.js.map +1 -1
  310. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  311. package/dist/components/Calendar/Calendar.d.ts +3 -2
  312. package/dist/components/Calendar/Calendar.js +9 -3
  313. package/dist/components/Calendar/Calendar.js.map +1 -1
  314. package/dist/components/CalendarDay/CalendarDay.d.ts +4 -2
  315. package/dist/components/CalendarDay/CalendarDay.js +8 -3
  316. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  317. package/dist/components/CalendarDays/CalendarDays.d.ts +3 -1
  318. package/dist/components/CalendarDays/CalendarDays.js +4 -3
  319. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  320. package/dist/components/CalendarHeader/CalendarHeader.d.ts +6 -1
  321. package/dist/components/CalendarHeader/CalendarHeader.js +7 -4
  322. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  323. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  324. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  325. package/dist/components/Card/Card.js.map +1 -1
  326. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  327. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  328. package/dist/components/Cell/Cell.js.map +1 -1
  329. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  330. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
  331. package/dist/components/Cell/useDraggable.js.map +1 -1
  332. package/dist/components/CellButton/CellButton.js.map +1 -1
  333. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  334. package/dist/components/Chip/Chip.js.map +1 -1
  335. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  336. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  337. package/dist/components/ChipsSelect/ChipsSelect.d.ts +2 -0
  338. package/dist/components/ChipsSelect/ChipsSelect.js +6 -2
  339. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  340. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  341. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  342. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  343. package/dist/components/Counter/Counter.js.map +1 -1
  344. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  345. package/dist/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  346. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  347. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  348. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  349. package/dist/components/DateInput/DateInput.js.map +1 -1
  350. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  351. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  352. package/dist/components/Div/Div.js.map +1 -1
  353. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  354. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  355. package/dist/components/Epic/Epic.js.map +1 -1
  356. package/dist/components/Epic/ScrollSaver.js.map +1 -1
  357. package/dist/components/File/File.js.map +1 -1
  358. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  359. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  360. package/dist/components/FocusVisible/FocusVisible.js.map +1 -1
  361. package/dist/components/Footer/Footer.js.map +1 -1
  362. package/dist/components/FormField/FormField.js.map +1 -1
  363. package/dist/components/FormItem/FormItem.js.map +1 -1
  364. package/dist/components/FormLayout/FormLayout.js.map +1 -1
  365. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  366. package/dist/components/FormStatus/FormStatus.js.map +1 -1
  367. package/dist/components/Gallery/Gallery.js +2 -0
  368. package/dist/components/Gallery/Gallery.js.map +1 -1
  369. package/dist/components/Gradient/Gradient.js.map +1 -1
  370. package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
  371. package/dist/components/Group/Group.d.ts +5 -1
  372. package/dist/components/Group/Group.js +4 -2
  373. package/dist/components/Group/Group.js.map +1 -1
  374. package/dist/components/Header/Header.js.map +1 -1
  375. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  376. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  377. package/dist/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  378. package/dist/components/HoverPopper/HoverPopper.js.map +1 -1
  379. package/dist/components/IconButton/IconButton.js.map +1 -1
  380. package/dist/components/InfoRow/InfoRow.js.map +1 -1
  381. package/dist/components/InitialsAvatar/InitialsAvatar.js.map +1 -1
  382. package/dist/components/Input/Input.js.map +1 -1
  383. package/dist/components/InputLike/InputLike.js.map +1 -1
  384. package/dist/components/InputLike/InputLikeDivider.js.map +1 -1
  385. package/dist/components/Link/Link.js.map +1 -1
  386. package/dist/components/List/List.js.map +1 -1
  387. package/dist/components/List/ListContext.js.map +1 -1
  388. package/dist/components/LocaleProviderContext/LocaleProviderContext.js.map +1 -1
  389. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  390. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  391. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  392. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  393. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  394. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  395. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  396. package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  397. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  398. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  399. package/dist/components/ModalRoot/constants.js.map +1 -1
  400. package/dist/components/ModalRoot/types.js.map +1 -1
  401. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  402. package/dist/components/ModalRoot/withModalRootContext.js.map +1 -1
  403. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  404. package/dist/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
  405. package/dist/components/Pagination/Pagination.js.map +1 -1
  406. package/dist/components/Panel/Panel.js.map +1 -1
  407. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  408. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  409. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  410. package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  411. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  412. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  413. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  414. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  415. package/dist/components/PanelSpinner/PanelSpinner.js.map +1 -1
  416. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  417. package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
  418. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  419. package/dist/components/Popper/Popper.js.map +1 -1
  420. package/dist/components/PopperArrow/PopperArrow.js.map +1 -1
  421. package/dist/components/Progress/Progress.js.map +1 -1
  422. package/dist/components/PromoBanner/PromoBanner.js +1 -1
  423. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  424. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  425. package/dist/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  426. package/dist/components/Radio/Radio.js.map +1 -1
  427. package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
  428. package/dist/components/RangeSlider/RangeSlider.js.map +1 -1
  429. package/dist/components/RangeSlider/UniversalSlider.js.map +1 -1
  430. package/dist/components/Removable/Removable.js.map +1 -1
  431. package/dist/components/RichCell/RichCell.js.map +1 -1
  432. package/dist/components/RichTooltip/RichTooltip.js.map +1 -1
  433. package/dist/components/Root/Root.js.map +1 -1
  434. package/dist/components/ScreenSpinner/Icon48CancelCircle.js.map +1 -1
  435. package/dist/components/ScreenSpinner/Icon48DoneOutline.js.map +1 -1
  436. package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  437. package/dist/components/Search/Search.js.map +1 -1
  438. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  439. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  440. package/dist/components/Select/Select.js.map +1 -1
  441. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  442. package/dist/components/Separator/Separator.js.map +1 -1
  443. package/dist/components/SimpleCell/SimpleCell.d.ts +34 -1
  444. package/dist/components/SimpleCell/SimpleCell.js +29 -8
  445. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  446. package/dist/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
  447. package/dist/components/Slider/Slider.js.map +1 -1
  448. package/dist/components/SliderSwitch/SliderSwitch.js.map +1 -1
  449. package/dist/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  450. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  451. package/dist/components/Spacing/Spacing.js.map +1 -1
  452. package/dist/components/Spinner/Spinner.js.map +1 -1
  453. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  454. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  455. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  456. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts +3 -2
  457. package/dist/components/SubnavigationButton/SubnavigationButton.js +15 -11
  458. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  459. package/dist/components/Switch/Switch.js.map +1 -1
  460. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  461. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  462. package/dist/components/Tabs/Tabs.js.map +1 -1
  463. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  464. package/dist/components/Tappable/Tappable.d.ts +2 -1
  465. package/dist/components/Tappable/Tappable.js.map +1 -1
  466. package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
  467. package/dist/components/Textarea/Textarea.js.map +1 -1
  468. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  469. package/dist/components/Tooltip/TooltipContainer.js.map +1 -1
  470. package/dist/components/Touch/Touch.js.map +1 -1
  471. package/dist/components/Touch/TouchContext.js.map +1 -1
  472. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  473. package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
  474. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  475. package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -1
  476. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  477. package/dist/components/Typography/Text/Text.js.map +1 -1
  478. package/dist/components/Typography/Title/Title.js.map +1 -1
  479. package/dist/components/UsersStack/UsersStack.d.ts +7 -1
  480. package/dist/components/UsersStack/UsersStack.js +5 -4
  481. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  482. package/dist/components/View/View.js.map +1 -1
  483. package/dist/components/View/ViewInfinite.js.map +1 -1
  484. package/dist/components/View/utils.js.map +1 -1
  485. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js +1 -3
  486. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  487. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  488. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  489. package/dist/components.css +36 -7
  490. package/dist/components.css.map +1 -1
  491. package/dist/cssm/appearance/constants.js.map +1 -1
  492. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  493. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  494. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  495. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  496. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  497. package/dist/cssm/components/ActionSheet/types.js.map +1 -1
  498. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  499. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  500. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  501. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  502. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  503. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  504. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  505. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  506. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  507. package/dist/cssm/components/AppearanceProvider/AppearanceProviderContext.js.map +1 -1
  508. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  509. package/dist/cssm/components/Badge/Badge.js.map +1 -1
  510. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  511. package/dist/cssm/components/BaseGallery/BaseGallery.js +11 -10
  512. package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
  513. package/dist/cssm/components/BaseGallery/helpers.js.map +1 -1
  514. package/dist/cssm/components/BaseGallery/types.js.map +1 -1
  515. package/dist/cssm/components/Button/Button.js.map +1 -1
  516. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  517. package/dist/cssm/components/Calendar/Calendar.d.ts +3 -2
  518. package/dist/cssm/components/Calendar/Calendar.js +9 -3
  519. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  520. package/dist/cssm/components/CalendarDay/CalendarDay.d.ts +4 -2
  521. package/dist/cssm/components/CalendarDay/CalendarDay.js +8 -3
  522. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  523. package/dist/cssm/components/CalendarDays/CalendarDays.d.ts +3 -1
  524. package/dist/cssm/components/CalendarDays/CalendarDays.js +4 -3
  525. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  526. package/dist/cssm/components/CalendarHeader/CalendarHeader.d.ts +6 -1
  527. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +7 -4
  528. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  529. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  530. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  531. package/dist/cssm/components/Card/Card.js.map +1 -1
  532. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  533. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  534. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  535. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  536. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  537. package/dist/cssm/components/Cell/useDraggable.js.map +1 -1
  538. package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
  539. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  540. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  541. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  542. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  543. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +2 -0
  544. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +6 -2
  545. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  546. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  547. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  548. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  549. package/dist/cssm/components/Counter/Counter.css +3 -1
  550. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  551. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  552. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  553. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  554. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  555. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  556. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  557. package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
  558. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  559. package/dist/cssm/components/Div/Div.js.map +1 -1
  560. package/dist/cssm/components/Dropdown/Dropdown.js.map +1 -1
  561. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  562. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  563. package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
  564. package/dist/cssm/components/File/File.js.map +1 -1
  565. package/dist/cssm/components/FixedLayout/FixedLayout.css +7 -1
  566. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  567. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  568. package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
  569. package/dist/cssm/components/Footer/Footer.js.map +1 -1
  570. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  571. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  572. package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
  573. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  574. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  575. package/dist/cssm/components/Gallery/Gallery.js +2 -0
  576. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  577. package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
  578. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
  579. package/dist/cssm/components/Group/Group.css +1 -1
  580. package/dist/cssm/components/Group/Group.d.ts +5 -1
  581. package/dist/cssm/components/Group/Group.js +4 -2
  582. package/dist/cssm/components/Group/Group.js.map +1 -1
  583. package/dist/cssm/components/Header/Header.css +1 -1
  584. package/dist/cssm/components/Header/Header.js.map +1 -1
  585. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  586. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  587. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  588. package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -1
  589. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  590. package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
  591. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js.map +1 -1
  592. package/dist/cssm/components/Input/Input.js.map +1 -1
  593. package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
  594. package/dist/cssm/components/InputLike/InputLikeDivider.js.map +1 -1
  595. package/dist/cssm/components/Link/Link.js.map +1 -1
  596. package/dist/cssm/components/List/List.js.map +1 -1
  597. package/dist/cssm/components/List/ListContext.js.map +1 -1
  598. package/dist/cssm/components/LocaleProviderContext/LocaleProviderContext.js.map +1 -1
  599. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  600. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  601. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  602. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  603. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  604. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  605. package/dist/cssm/components/ModalRoot/ModalRoot.css +4 -1
  606. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  607. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  608. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  609. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  610. package/dist/cssm/components/ModalRoot/constants.js.map +1 -1
  611. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  612. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  613. package/dist/cssm/components/ModalRoot/withModalRootContext.js.map +1 -1
  614. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  615. package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
  616. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  617. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  618. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  619. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  620. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  621. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  622. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  623. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  624. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  625. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  626. package/dist/cssm/components/PanelSpinner/PanelSpinner.js.map +1 -1
  627. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  628. package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
  629. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  630. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  631. package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -1
  632. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  633. package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -1
  634. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  635. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  636. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  637. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  638. package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
  639. package/dist/cssm/components/RangeSlider/RangeSlider.js.map +1 -1
  640. package/dist/cssm/components/RangeSlider/UniversalSlider.js.map +1 -1
  641. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  642. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  643. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
  644. package/dist/cssm/components/Root/Root.js.map +1 -1
  645. package/dist/cssm/components/ScreenSpinner/Icon48CancelCircle.js.map +1 -1
  646. package/dist/cssm/components/ScreenSpinner/Icon48DoneOutline.js.map +1 -1
  647. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  648. package/dist/cssm/components/Search/Search.js.map +1 -1
  649. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  650. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  651. package/dist/cssm/components/Select/Select.js.map +1 -1
  652. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  653. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  654. package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
  655. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +34 -1
  656. package/dist/cssm/components/SimpleCell/SimpleCell.js +29 -8
  657. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  658. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
  659. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  660. package/dist/cssm/components/SliderSwitch/SliderSwitch.js.map +1 -1
  661. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  662. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  663. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  664. package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
  665. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  666. package/dist/cssm/components/SplitLayout/SplitLayout.css +7 -1
  667. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  668. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  669. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.css +9 -1
  670. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.d.ts +3 -2
  671. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +15 -11
  672. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  673. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  674. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  675. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  676. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  677. package/dist/cssm/components/TabsItem/TabsItem.css +5 -1
  678. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  679. package/dist/cssm/components/Tappable/Tappable.d.ts +2 -1
  680. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  681. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
  682. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  683. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  684. package/dist/cssm/components/Tooltip/TooltipContainer.js.map +1 -1
  685. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  686. package/dist/cssm/components/Touch/TouchContext.js.map +1 -1
  687. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  688. package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
  689. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  690. package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
  691. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  692. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  693. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  694. package/dist/cssm/components/UsersStack/UsersStack.d.ts +7 -1
  695. package/dist/cssm/components/UsersStack/UsersStack.js +5 -4
  696. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  697. package/dist/cssm/components/View/View.js.map +1 -1
  698. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  699. package/dist/cssm/components/View/utils.js.map +1 -1
  700. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +1 -3
  701. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  702. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  703. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  704. package/dist/cssm/helpers/avatar.js.map +1 -1
  705. package/dist/cssm/helpers/getClassName.js.map +1 -1
  706. package/dist/cssm/helpers/getScheme.js.map +1 -1
  707. package/dist/cssm/helpers/math.js.map +1 -1
  708. package/dist/cssm/helpers/scheme.js.map +1 -1
  709. package/dist/cssm/hoc/withAdaptivity.js.map +1 -1
  710. package/dist/cssm/hoc/withContext.js.map +1 -1
  711. package/dist/cssm/hoc/withInsets.js.map +1 -1
  712. package/dist/cssm/hoc/withPlatform.js.map +1 -1
  713. package/dist/cssm/hooks/useAdaptivity.js.map +1 -1
  714. package/dist/cssm/hooks/useAppearance.js.map +1 -1
  715. package/dist/cssm/hooks/useBooleanState.js.map +1 -1
  716. package/dist/cssm/hooks/useBridgeAdaptivity.js.map +1 -1
  717. package/dist/cssm/hooks/useBrowserInfo.js.map +1 -1
  718. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  719. package/dist/cssm/hooks/useChipsInput.js.map +1 -1
  720. package/dist/cssm/hooks/useChipsSelect.js.map +1 -1
  721. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  722. package/dist/cssm/hooks/useEffectDev.js.map +1 -1
  723. package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
  724. package/dist/cssm/hooks/useEventListener.js.map +1 -1
  725. package/dist/cssm/hooks/useExternRef.js.map +1 -1
  726. package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
  727. package/dist/cssm/hooks/useGlobalEventListener.js.map +1 -1
  728. package/dist/cssm/hooks/useInsets.js.map +1 -1
  729. package/dist/cssm/hooks/useKeyboard.js.map +1 -1
  730. package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
  731. package/dist/cssm/hooks/useObjectMemo.js.map +1 -1
  732. package/dist/cssm/hooks/useOrientationChange.js.map +1 -1
  733. package/dist/cssm/hooks/usePagination.js.map +1 -1
  734. package/dist/cssm/hooks/usePatchChildrenRef.js.map +1 -1
  735. package/dist/cssm/hooks/usePlatform.js.map +1 -1
  736. package/dist/cssm/hooks/usePrevious.js.map +1 -1
  737. package/dist/cssm/hooks/useTimeout.js.map +1 -1
  738. package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
  739. package/dist/cssm/index.d.ts +2 -0
  740. package/dist/cssm/index.js +1 -0
  741. package/dist/cssm/index.js.map +1 -1
  742. package/dist/cssm/lib/SSR.js.map +1 -1
  743. package/dist/cssm/lib/accessibility.js.map +1 -1
  744. package/dist/cssm/lib/animate.js.map +1 -1
  745. package/dist/cssm/lib/browser.js.map +1 -1
  746. package/dist/cssm/lib/calendar.js.map +1 -1
  747. package/dist/cssm/lib/callMultiple.js.map +1 -1
  748. package/dist/cssm/lib/classNames.js.map +1 -1
  749. package/dist/cssm/lib/classScopingMode.js.map +1 -1
  750. package/dist/cssm/lib/date.js.map +1 -1
  751. package/dist/cssm/lib/dom.js.map +1 -1
  752. package/dist/cssm/lib/fx.js.map +1 -1
  753. package/dist/cssm/lib/getNavId.js.map +1 -1
  754. package/dist/cssm/lib/is.js.map +1 -1
  755. package/dist/cssm/lib/isRefObject.js.map +1 -1
  756. package/dist/cssm/lib/jsxRuntime.d.js.map +1 -1
  757. package/dist/cssm/lib/jsxRuntime.js.map +1 -1
  758. package/dist/cssm/lib/offset.js.map +1 -1
  759. package/dist/cssm/lib/platform.js.map +1 -1
  760. package/dist/cssm/lib/polyfills.js.map +1 -1
  761. package/dist/cssm/lib/prefixClass.js.map +1 -1
  762. package/dist/cssm/lib/removeObjectKeys.js.map +1 -1
  763. package/dist/cssm/lib/select.js.map +1 -1
  764. package/dist/cssm/lib/styles.js.map +1 -1
  765. package/dist/cssm/lib/supportEvents.js.map +1 -1
  766. package/dist/cssm/lib/taptic.js.map +1 -1
  767. package/dist/cssm/lib/testing.js.map +1 -1
  768. package/dist/cssm/lib/touch.js.map +1 -1
  769. package/dist/cssm/lib/useIsomorphicLayoutEffect.js.map +1 -1
  770. package/dist/cssm/lib/utils.js.map +1 -1
  771. package/dist/cssm/lib/warnOnce.js.map +1 -1
  772. package/dist/cssm/styles/components.css +36 -7
  773. package/dist/cssm/styles/themes.css +1 -1
  774. package/dist/cssm/tokenized/index.d.ts +2 -0
  775. package/dist/cssm/tokenized/index.js +1 -0
  776. package/dist/cssm/tokenized/index.js.map +1 -1
  777. package/dist/cssm/types.js.map +1 -1
  778. package/dist/cssm/unstable/index.js.map +1 -1
  779. package/dist/helpers/avatar.js.map +1 -1
  780. package/dist/helpers/getClassName.js.map +1 -1
  781. package/dist/helpers/getScheme.js.map +1 -1
  782. package/dist/helpers/math.js.map +1 -1
  783. package/dist/helpers/scheme.js.map +1 -1
  784. package/dist/hoc/withAdaptivity.js.map +1 -1
  785. package/dist/hoc/withContext.js.map +1 -1
  786. package/dist/hoc/withInsets.js.map +1 -1
  787. package/dist/hoc/withPlatform.js.map +1 -1
  788. package/dist/hooks/useAdaptivity.js.map +1 -1
  789. package/dist/hooks/useAppearance.js.map +1 -1
  790. package/dist/hooks/useBooleanState.js.map +1 -1
  791. package/dist/hooks/useBridgeAdaptivity.js.map +1 -1
  792. package/dist/hooks/useBrowserInfo.js.map +1 -1
  793. package/dist/hooks/useCalendar.js.map +1 -1
  794. package/dist/hooks/useChipsInput.js.map +1 -1
  795. package/dist/hooks/useChipsSelect.js.map +1 -1
  796. package/dist/hooks/useDateInput.js.map +1 -1
  797. package/dist/hooks/useEffectDev.js.map +1 -1
  798. package/dist/hooks/useEnsuredControl.js.map +1 -1
  799. package/dist/hooks/useEventListener.js.map +1 -1
  800. package/dist/hooks/useExternRef.js.map +1 -1
  801. package/dist/hooks/useFocusVisible.js.map +1 -1
  802. package/dist/hooks/useGlobalEventListener.js.map +1 -1
  803. package/dist/hooks/useInsets.js.map +1 -1
  804. package/dist/hooks/useKeyboard.js.map +1 -1
  805. package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
  806. package/dist/hooks/useObjectMemo.js.map +1 -1
  807. package/dist/hooks/useOrientationChange.js.map +1 -1
  808. package/dist/hooks/usePagination.js.map +1 -1
  809. package/dist/hooks/usePatchChildrenRef.js.map +1 -1
  810. package/dist/hooks/usePlatform.js.map +1 -1
  811. package/dist/hooks/usePrevious.js.map +1 -1
  812. package/dist/hooks/useTimeout.js.map +1 -1
  813. package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
  814. package/dist/index.d.ts +2 -0
  815. package/dist/index.js +1 -0
  816. package/dist/index.js.map +1 -1
  817. package/dist/lib/SSR.js.map +1 -1
  818. package/dist/lib/accessibility.js.map +1 -1
  819. package/dist/lib/animate.js.map +1 -1
  820. package/dist/lib/browser.js.map +1 -1
  821. package/dist/lib/calendar.js.map +1 -1
  822. package/dist/lib/callMultiple.js.map +1 -1
  823. package/dist/lib/classNames.js.map +1 -1
  824. package/dist/lib/classScopingMode.js.map +1 -1
  825. package/dist/lib/date.js.map +1 -1
  826. package/dist/lib/dom.js.map +1 -1
  827. package/dist/lib/fx.js.map +1 -1
  828. package/dist/lib/getNavId.js.map +1 -1
  829. package/dist/lib/is.js.map +1 -1
  830. package/dist/lib/isRefObject.js.map +1 -1
  831. package/dist/lib/jsxRuntime.d.js.map +1 -1
  832. package/dist/lib/jsxRuntime.js.map +1 -1
  833. package/dist/lib/offset.js.map +1 -1
  834. package/dist/lib/platform.js.map +1 -1
  835. package/dist/lib/polyfills.js.map +1 -1
  836. package/dist/lib/prefixClass.js.map +1 -1
  837. package/dist/lib/removeObjectKeys.js.map +1 -1
  838. package/dist/lib/select.js.map +1 -1
  839. package/dist/lib/styles.js.map +1 -1
  840. package/dist/lib/supportEvents.js.map +1 -1
  841. package/dist/lib/taptic.js.map +1 -1
  842. package/dist/lib/testing.js.map +1 -1
  843. package/dist/lib/touch.js.map +1 -1
  844. package/dist/lib/useIsomorphicLayoutEffect.js.map +1 -1
  845. package/dist/lib/utils.js.map +1 -1
  846. package/dist/lib/warnOnce.js.map +1 -1
  847. package/dist/tokenized/index.d.ts +2 -0
  848. package/dist/tokenized/index.js +1 -0
  849. package/dist/tokenized/index.js.map +1 -1
  850. package/dist/types.js.map +1 -1
  851. package/dist/unstable/index.js.map +1 -1
  852. package/dist/vkui.css +37 -8
  853. package/dist/vkui.css.map +1 -1
  854. package/package.json +16 -17
  855. package/src/components/Avatar/Readme.md +8 -8
  856. package/src/components/BaseGallery/BaseGallery.tsx +9 -5
  857. package/src/components/Calendar/Calendar.tsx +10 -1
  858. package/src/components/CalendarDay/CalendarDay.tsx +9 -2
  859. package/src/components/CalendarDays/CalendarDays.tsx +7 -1
  860. package/src/components/CalendarHeader/CalendarHeader.tsx +9 -1
  861. package/src/components/ChipsSelect/ChipsSelect.tsx +6 -0
  862. package/src/components/Counter/Counter.css +13 -0
  863. package/src/components/FixedLayout/FixedLayout.css +19 -3
  864. package/src/components/Gallery/Gallery.tsx +1 -0
  865. package/src/components/Gradient/Readme.md +1 -1
  866. package/src/components/Group/Group.css +11 -2
  867. package/src/components/Group/Group.tsx +7 -1
  868. package/src/components/Group/Readme.md +2 -2
  869. package/src/components/Header/Header.css +3 -4
  870. package/src/components/ModalRoot/ModalRoot.css +14 -2
  871. package/src/components/Panel/Panel.css +2 -0
  872. package/src/components/PanelHeaderContent/Readme.md +5 -1
  873. package/src/components/PromoBanner/PromoBanner.tsx +1 -1
  874. package/src/components/SimpleCell/Readme.md +3 -3
  875. package/src/components/SimpleCell/SimpleCell.css +6 -1
  876. package/src/components/SimpleCell/SimpleCell.tsx +71 -8
  877. package/src/components/SplitLayout/SplitLayout.css +8 -2
  878. package/src/components/SubnavigationButton/Readme.md +133 -116
  879. package/src/components/SubnavigationButton/SubnavigationButton.css +86 -53
  880. package/src/components/SubnavigationButton/SubnavigationButton.tsx +22 -15
  881. package/src/components/TabsItem/TabsItem.css +8 -2
  882. package/src/components/Tappable/Tappable.tsx +13 -11
  883. package/src/components/Tooltip/Readme.md +7 -7
  884. package/src/components/UsersStack/UsersStack.tsx +9 -3
  885. package/src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx +1 -6
  886. package/src/index.ts +2 -0
  887. package/src/testing/utils.tsx +1 -1
  888. package/src/tokenized/index.ts +3 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ChipsInputBase/ChipsInputBase.tsx"],"names":["chipsInputDefaultProps","onChange","noop","onInputChange","onKeyDown","onBlur","onFocus","value","inputValue","inputAriaLabel","getOptionValue","option","getOptionLabel","label","getNewOptionData","_","renderChip","props","disabled","rest","ChipsInputBase","propsWithDefault","style","className","getRootRef","children","getRef","placeholder","restProps","sizeY","React","useState","focused","setFocused","fieldValue","addOptionFromInput","removeOption","selectedOptions","handleInputChange","inputRef","isDisabled","readOnly","handleKeyDown","e","preventDefault","key","defaultPrevented","length","handleBlur","handleFocus","handleChipRemove","undefined","handleClick","current","focus","map","onRemove","Boolean"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { HasAlign, HasRef, HasRootRef } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Chip, ChipOption, ChipValue, RenderChip } from \"../Chip/Chip\";\nimport { noop } from \"../../lib/utils\";\nimport { useChipsInput } from \"../../hooks/useChipsInput\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport \"./ChipsInputBase.css\";\n\nexport interface ChipsInputBaseProps<Option extends ChipOption>\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"value\" | \"onChange\"\n >,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasAlign {\n value: Option[];\n inputValue?: string;\n onChange?: (o: Option[]) => void;\n onInputChange?: (e?: React.ChangeEvent<HTMLInputElement>) => void;\n getOptionValue?: (o?: Option) => ChipValue;\n getOptionLabel?: (o?: Option) => string;\n getNewOptionData?: (v?: ChipValue, l?: string) => Option;\n renderChip?: (props?: RenderChip<Option>) => React.ReactNode;\n inputAriaLabel?: string;\n}\n\nexport const chipsInputDefaultProps: ChipsInputBaseProps<any> = {\n onChange: noop,\n onInputChange: noop,\n onKeyDown: noop,\n onBlur: noop,\n onFocus: noop,\n value: [],\n inputValue: \"\",\n inputAriaLabel: \"Введите ваше значение...\",\n getOptionValue: (option) => option.value,\n getOptionLabel: (option) => option.label,\n getNewOptionData: (_, label) => ({\n value: label,\n label,\n }),\n renderChip(props) {\n if (!props) {\n return null;\n }\n\n const { disabled, value, label, ...rest } = props;\n return (\n <Chip value={value} removable={!disabled} {...rest}>\n {label}\n </Chip>\n );\n },\n};\n\nexport const ChipsInputBase = <Option extends ChipOption>(\n props: ChipsInputBaseProps<Option>\n) => {\n const propsWithDefault = { ...chipsInputDefaultProps, ...props };\n const {\n style,\n className,\n getRootRef,\n value,\n onChange,\n onInputChange,\n onKeyDown,\n onBlur,\n onFocus,\n children,\n inputValue,\n getRef,\n placeholder,\n getOptionValue,\n getOptionLabel,\n getNewOptionData,\n renderChip,\n inputAriaLabel,\n ...restProps\n } = propsWithDefault;\n const { sizeY } = useAdaptivity();\n\n const [focused, setFocused] = React.useState(false);\n const {\n fieldValue,\n addOptionFromInput,\n removeOption,\n selectedOptions,\n handleInputChange,\n } = useChipsInput(propsWithDefault);\n const inputRef = useExternRef(getRef);\n\n const isDisabled = restProps.disabled || restProps.readOnly;\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n\n onKeyDown!(e);\n\n if (\n e.key === \"Backspace\" &&\n !e.defaultPrevented &&\n !fieldValue &&\n selectedOptions.length\n ) {\n removeOption(\n getOptionValue!(selectedOptions[selectedOptions.length - 1])\n );\n e.preventDefault();\n }\n\n if (e.key === \"Enter\" && !e.defaultPrevented && fieldValue) {\n addOptionFromInput();\n e.preventDefault();\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n if (focused) {\n setFocused(false);\n }\n onBlur!(e);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n setFocused(true);\n }\n onFocus!(e);\n };\n\n const handleChipRemove = (\n _: React.MouseEvent | undefined,\n value: ChipValue | undefined\n ) => {\n if (value !== undefined) {\n removeOption(value);\n }\n };\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n\n if (inputRef?.current !== null && !focused) {\n inputRef.current.focus();\n }\n };\n\n return (\n <div\n vkuiClass={classNames(\"ChipsInputBase\", `ChipsInputBase--sizeY-${sizeY}`)}\n onClick={handleClick}\n role=\"presentation\"\n style={style}\n className={className}\n ref={getRootRef}\n >\n {selectedOptions.map((option: Option) => {\n const value = getOptionValue!(option);\n const label = getOptionLabel!(option);\n\n return (\n <React.Fragment key={`${typeof value}-${value}`}>\n {renderChip!({\n option,\n value,\n label,\n onRemove: handleChipRemove,\n disabled: Boolean(restProps.disabled),\n className: prefixClass(\"ChipsInputBase__chip\"),\n })}\n </React.Fragment>\n );\n })}\n <label vkuiClass=\"ChipsInputBase__label\" aria-label={inputAriaLabel}>\n <input\n type=\"text\"\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck={false}\n aria-autocomplete=\"list\"\n vkuiClass=\"ChipsInputBase__el\"\n {...restProps}\n ref={inputRef}\n value={fieldValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n placeholder={selectedOptions.length ? undefined : placeholder}\n />\n </label>\n </div>\n );\n};\n"],"file":"ChipsInputBase.js"}
1
+ {"version":3,"file":"ChipsInputBase.js","names":["chipsInputDefaultProps","onChange","noop","onInputChange","onKeyDown","onBlur","onFocus","value","inputValue","inputAriaLabel","getOptionValue","option","getOptionLabel","label","getNewOptionData","_","renderChip","props","disabled","rest","ChipsInputBase","propsWithDefault","style","className","getRootRef","children","getRef","placeholder","restProps","useAdaptivity","sizeY","React","useState","focused","setFocused","useChipsInput","fieldValue","addOptionFromInput","removeOption","selectedOptions","handleInputChange","inputRef","useExternRef","isDisabled","readOnly","handleKeyDown","e","preventDefault","key","defaultPrevented","length","handleBlur","handleFocus","handleChipRemove","undefined","handleClick","current","focus","classNames","map","onRemove","Boolean","prefixClass"],"sources":["../../../../src/components/ChipsInputBase/ChipsInputBase.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { HasAlign, HasRef, HasRootRef } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Chip, ChipOption, ChipValue, RenderChip } from \"../Chip/Chip\";\nimport { noop } from \"../../lib/utils\";\nimport { useChipsInput } from \"../../hooks/useChipsInput\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport \"./ChipsInputBase.css\";\n\nexport interface ChipsInputBaseProps<Option extends ChipOption>\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"value\" | \"onChange\"\n >,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasAlign {\n value: Option[];\n inputValue?: string;\n onChange?: (o: Option[]) => void;\n onInputChange?: (e?: React.ChangeEvent<HTMLInputElement>) => void;\n getOptionValue?: (o?: Option) => ChipValue;\n getOptionLabel?: (o?: Option) => string;\n getNewOptionData?: (v?: ChipValue, l?: string) => Option;\n renderChip?: (props?: RenderChip<Option>) => React.ReactNode;\n inputAriaLabel?: string;\n}\n\nexport const chipsInputDefaultProps: ChipsInputBaseProps<any> = {\n onChange: noop,\n onInputChange: noop,\n onKeyDown: noop,\n onBlur: noop,\n onFocus: noop,\n value: [],\n inputValue: \"\",\n inputAriaLabel: \"Введите ваше значение...\",\n getOptionValue: (option) => option.value,\n getOptionLabel: (option) => option.label,\n getNewOptionData: (_, label) => ({\n value: label,\n label,\n }),\n renderChip(props) {\n if (!props) {\n return null;\n }\n\n const { disabled, value, label, ...rest } = props;\n return (\n <Chip value={value} removable={!disabled} {...rest}>\n {label}\n </Chip>\n );\n },\n};\n\nexport const ChipsInputBase = <Option extends ChipOption>(\n props: ChipsInputBaseProps<Option>\n) => {\n const propsWithDefault = { ...chipsInputDefaultProps, ...props };\n const {\n style,\n className,\n getRootRef,\n value,\n onChange,\n onInputChange,\n onKeyDown,\n onBlur,\n onFocus,\n children,\n inputValue,\n getRef,\n placeholder,\n getOptionValue,\n getOptionLabel,\n getNewOptionData,\n renderChip,\n inputAriaLabel,\n ...restProps\n } = propsWithDefault;\n const { sizeY } = useAdaptivity();\n\n const [focused, setFocused] = React.useState(false);\n const {\n fieldValue,\n addOptionFromInput,\n removeOption,\n selectedOptions,\n handleInputChange,\n } = useChipsInput(propsWithDefault);\n const inputRef = useExternRef(getRef);\n\n const isDisabled = restProps.disabled || restProps.readOnly;\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n\n onKeyDown!(e);\n\n if (\n e.key === \"Backspace\" &&\n !e.defaultPrevented &&\n !fieldValue &&\n selectedOptions.length\n ) {\n removeOption(\n getOptionValue!(selectedOptions[selectedOptions.length - 1])\n );\n e.preventDefault();\n }\n\n if (e.key === \"Enter\" && !e.defaultPrevented && fieldValue) {\n addOptionFromInput();\n e.preventDefault();\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n if (focused) {\n setFocused(false);\n }\n onBlur!(e);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n setFocused(true);\n }\n onFocus!(e);\n };\n\n const handleChipRemove = (\n _: React.MouseEvent | undefined,\n value: ChipValue | undefined\n ) => {\n if (value !== undefined) {\n removeOption(value);\n }\n };\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n\n if (inputRef?.current !== null && !focused) {\n inputRef.current.focus();\n }\n };\n\n return (\n <div\n vkuiClass={classNames(\"ChipsInputBase\", `ChipsInputBase--sizeY-${sizeY}`)}\n onClick={handleClick}\n role=\"presentation\"\n style={style}\n className={className}\n ref={getRootRef}\n >\n {selectedOptions.map((option: Option) => {\n const value = getOptionValue!(option);\n const label = getOptionLabel!(option);\n\n return (\n <React.Fragment key={`${typeof value}-${value}`}>\n {renderChip!({\n option,\n value,\n label,\n onRemove: handleChipRemove,\n disabled: Boolean(restProps.disabled),\n className: prefixClass(\"ChipsInputBase__chip\"),\n })}\n </React.Fragment>\n );\n })}\n <label vkuiClass=\"ChipsInputBase__label\" aria-label={inputAriaLabel}>\n <input\n type=\"text\"\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck={false}\n aria-autocomplete=\"list\"\n vkuiClass=\"ChipsInputBase__el\"\n {...restProps}\n ref={inputRef}\n value={fieldValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n placeholder={selectedOptions.length ? undefined : placeholder}\n />\n </label>\n </div>\n );\n};\n"],"mappings":"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"}
@@ -54,7 +54,7 @@ var _FormField = require("../FormField/FormField");
54
54
  var _IconButton = require("../IconButton/IconButton");
55
55
 
56
56
  var _excluded = ["option"],
57
- _excluded2 = ["style", "onFocus", "onKeyDown", "className", "fetching", "renderOption", "emptyText", "getRef", "getRootRef", "disabled", "placeholder", "tabIndex", "getOptionValue", "getOptionLabel", "showSelected", "getNewOptionData", "renderChip", "popupDirection", "creatable", "filterFn", "inputValue", "creatableText", "closeAfterSelect", "onChangeStart", "before", "options"];
57
+ _excluded2 = ["style", "onFocus", "onKeyDown", "className", "fetching", "renderOption", "emptyText", "getRef", "getRootRef", "disabled", "placeholder", "tabIndex", "getOptionValue", "getOptionLabel", "showSelected", "getNewOptionData", "renderChip", "popupDirection", "creatable", "filterFn", "inputValue", "creatableText", "closeAfterSelect", "onChangeStart", "before", "options", "fixDropdownWidth", "forceDropdownPortal"];
58
58
  var FOCUS_ACTION_NEXT = "next";
59
59
  var FOCUS_ACTION_PREV = "prev";
60
60
  var chipsSelectDefaultProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _ChipsInputBase.chipsInputDefaultProps), {}, {
@@ -105,6 +105,8 @@ var ChipsSelect = function ChipsSelect(props) {
105
105
  onChangeStart = propsWithDefault.onChangeStart,
106
106
  before = propsWithDefault.before,
107
107
  options = propsWithDefault.options,
108
+ fixDropdownWidth = propsWithDefault.fixDropdownWidth,
109
+ forceDropdownPortal = propsWithDefault.forceDropdownPortal,
108
110
  restProps = (0, _objectWithoutProperties2.default)(propsWithDefault, _excluded2);
109
111
 
110
112
  var _useDOM = (0, _dom.useDOM)(),
@@ -351,7 +353,9 @@ var ChipsSelect = function ChipsSelect(props) {
351
353
  onPlacementChange: onPlacementChange,
352
354
  onMouseLeave: onDropdownMouseLeave,
353
355
  fetching: fetching,
354
- vkuiClass: "ChipsSelect__options"
356
+ vkuiClass: "ChipsSelect__options",
357
+ sameWidth: fixDropdownWidth,
358
+ forcePortal: forceDropdownPortal
355
359
  }, showCreatable && (0, _jsxRuntime.createScopedElement)(_CustomSelectOption.CustomSelectOption, {
356
360
  hovered: focusedOptionIndex === 0,
357
361
  onMouseDown: addOptionFromInput,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ChipsSelect/ChipsSelect.tsx"],"names":["FOCUS_ACTION_NEXT","FOCUS_ACTION_PREV","chipsSelectDefaultProps","chipsInputDefaultProps","emptyText","creatableText","onChangeStart","noop","creatable","fetching","showSelected","closeAfterSelect","options","filterFn","defaultFilterFn","renderOption","option","restProps","ChipsSelect","props","propsWithDefault","style","onFocus","onKeyDown","className","getRef","getRootRef","disabled","placeholder","tabIndex","getOptionValue","getOptionLabel","getNewOptionData","renderChip","popupDirection","inputValue","before","document","React","useState","undefined","popperPlacement","setPopperPlacement","scrollBoxRef","useRef","rootRef","fieldValue","selectedOptions","opened","setOpened","addOptionFromInput","filteredOptions","addOption","handleInputChange","clearInput","focusedOption","setFocusedOption","focusedOptionIndex","setFocusedOptionIndex","showCreatable","Boolean","length","handleFocus","e","handleClickOutside","target","current","contains","chipsSelectOptions","scrollToElement","index","center","dropdown","item","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","focusOptionByIndex","oldIndex","focusOption","nextIndex","type","handleKeyDown","key","defaultPrevented","preventDefault","includes","useEffect","findIndex","value","renderChipWrapper","renderChipProps","onRemoveWrapper","stopPropagation","onRemove","isPopperDirectionTop","onPlacementChange","useCallback","placement","onDropdownMouseLeave","observableRefs","useMemo","toggleOpened","prevOpened","readOnly","map","label","hovered","selected","find","selectedOption","children","onMouseDown","onMouseEnter"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { classNames } from \"../../lib/classNames\";\nimport { ChipOption, ChipValue, RenderChip } from \"../Chip/Chip\";\nimport { ChipsInputProps } from \"../ChipsInput/ChipsInput\";\nimport {\n ChipsInputBase,\n chipsInputDefaultProps,\n} from \"../ChipsInputBase/ChipsInputBase\";\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from \"../CustomSelectOption/CustomSelectOption\";\nimport { useChipsSelect } from \"../../hooks/useChipsSelect\";\nimport { noop } from \"../../lib/utils\";\nimport { useDOM } from \"../../lib/dom\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport { defaultFilterFn } from \"../../lib/select\";\nimport { Placement } from \"../Popper/Popper\";\nimport { CustomSelectDropdown } from \"../CustomSelectDropdown/CustomSelectDropdown\";\nimport { FormField } from \"../FormField/FormField\";\nimport { IconButton } from \"../IconButton/IconButton\";\nimport \"./ChipsSelect.css\";\n\nexport interface ChipsSelectProps<Option extends ChipOption>\n extends Omit<ChipsInputProps<Option>, \"after\"> {\n popupDirection?: \"top\" | \"bottom\";\n options?: Option[];\n filterFn?:\n | false\n | ((\n value?: string,\n option?: Option,\n getOptionLabel?: Pick<\n ChipsInputProps<Option>,\n \"getOptionLabel\"\n >[\"getOptionLabel\"]\n ) => boolean);\n /**\n * Возможность создавать чипы которых нет в списке (по enter или с помощью пункта в меню, см creatableText)\n */\n creatable?: boolean;\n /**\n * Отрисовка лоадера вместо списка опций в выпадающем списке\n */\n fetching?: boolean;\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Показывать или скрывать уже выбранные опции\n */\n showSelected?: boolean;\n /**\n * Текст для пункта создающего чипы при клике, так же отвечает за то будет ли показан этот пункт (показывается после того как в списке не отсанется опций)\n */\n creatableText?: string;\n /**\n * Текст который показывается если список опций пуст\n */\n emptyText?: string;\n /**\n * Событие срабатывающее перед onChange\n */\n onChangeStart?: (\n e: React.MouseEvent | React.KeyboardEvent,\n option: Option\n ) => void;\n /**\n * Закрытие выпадающего списка после выбора элемента\n */\n closeAfterSelect?: boolean;\n}\n\ntype FocusActionType = \"next\" | \"prev\";\n\nconst FOCUS_ACTION_NEXT: FocusActionType = \"next\";\nconst FOCUS_ACTION_PREV: FocusActionType = \"prev\";\n\nconst chipsSelectDefaultProps: ChipsSelectProps<any> = {\n ...chipsInputDefaultProps,\n emptyText: \"Ничего не найдено\",\n creatableText: \"Создать значение\",\n onChangeStart: noop,\n creatable: false,\n fetching: false,\n showSelected: true,\n closeAfterSelect: true,\n options: [],\n filterFn: defaultFilterFn,\n renderOption({ option, ...restProps }) {\n return <CustomSelectOption {...restProps} />;\n },\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ChipsSelect\n */\nexport const ChipsSelect = <Option extends ChipOption>(\n props: ChipsSelectProps<Option>\n) => {\n const propsWithDefault = { ...chipsSelectDefaultProps, ...props };\n const {\n style,\n onFocus,\n onKeyDown,\n className,\n fetching,\n renderOption,\n emptyText,\n getRef,\n getRootRef,\n disabled,\n placeholder,\n tabIndex,\n getOptionValue,\n getOptionLabel,\n showSelected,\n getNewOptionData,\n renderChip,\n popupDirection,\n creatable,\n filterFn,\n inputValue,\n creatableText,\n closeAfterSelect,\n onChangeStart,\n before,\n options,\n ...restProps\n } = propsWithDefault;\n\n const { document } = useDOM();\n\n const [popperPlacement, setPopperPlacement] = React.useState<\n Placement | undefined\n >(undefined);\n\n const scrollBoxRef = React.useRef<HTMLDivElement>(null);\n const rootRef = useExternRef(getRef);\n const {\n fieldValue,\n selectedOptions = [],\n opened,\n setOpened,\n addOptionFromInput,\n filteredOptions,\n addOption,\n handleInputChange,\n clearInput,\n focusedOption,\n setFocusedOption,\n focusedOptionIndex,\n setFocusedOptionIndex,\n } = useChipsSelect(propsWithDefault);\n\n const showCreatable = Boolean(\n creatable && creatableText && !filteredOptions.length && fieldValue\n );\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setOpened(true);\n setFocusedOptionIndex(0);\n onFocus!(e);\n };\n\n const handleClickOutside = (e: MouseEvent) => {\n if (\n e.target !== rootRef.current &&\n !rootRef.current?.contains(e.target as Node)\n ) {\n setOpened(false);\n }\n };\n\n const chipsSelectOptions = React.useRef<HTMLElement[]>([]).current;\n\n const scrollToElement = (index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = chipsSelectOptions[index];\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n };\n\n const focusOptionByIndex = (index: number, oldIndex: number) => {\n const { length } = filteredOptions;\n\n if (index < 0) {\n index = length - 1;\n } else if (index >= length) {\n index = 0;\n }\n\n if (index === oldIndex) {\n return;\n }\n\n scrollToElement(index);\n setFocusedOptionIndex(index);\n };\n\n const focusOption = (nextIndex: number | null, type: FocusActionType) => {\n let index = typeof nextIndex !== \"number\" ? -1 : nextIndex;\n\n if (type === FOCUS_ACTION_NEXT) {\n index = index + 1;\n } else if (type === FOCUS_ACTION_PREV) {\n index = index - 1;\n }\n\n if (focusedOptionIndex != null) {\n focusOptionByIndex(index, focusedOptionIndex);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown!(e);\n\n if (e.key === \"ArrowUp\" && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_PREV);\n }\n }\n\n if (e.key === \"ArrowDown\" && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_NEXT);\n }\n }\n\n if (\n e.key === \"Enter\" &&\n !e.defaultPrevented &&\n opened &&\n focusedOptionIndex != null\n ) {\n const option = filteredOptions[focusedOptionIndex];\n\n if (option) {\n onChangeStart!(e, option);\n\n if (!e.defaultPrevented) {\n addOption(option);\n setFocusedOptionIndex(null);\n clearInput();\n closeAfterSelect && setOpened(false);\n e.preventDefault();\n }\n } else if (!creatable) {\n e.preventDefault();\n }\n }\n\n if ([\"Escape\", \"Tab\"].includes(e.key) && !e.defaultPrevented && opened) {\n setOpened(false);\n }\n };\n\n React.useEffect(() => {\n if (focusedOptionIndex != null && filteredOptions[focusedOptionIndex]) {\n setFocusedOption(filteredOptions[focusedOptionIndex]);\n } else if (focusedOptionIndex === null || focusedOptionIndex === 0) {\n setFocusedOption(null);\n }\n }, [focusedOptionIndex, filteredOptions, setFocusedOption]);\n\n React.useEffect(() => {\n const index = focusedOption\n ? filteredOptions.findIndex(({ value }) => value === focusedOption.value)\n : -1;\n\n if (\n index === -1 &&\n !!filteredOptions.length &&\n !showCreatable &&\n closeAfterSelect\n ) {\n setFocusedOption(filteredOptions[0]);\n }\n }, [\n filteredOptions,\n focusedOption,\n showCreatable,\n closeAfterSelect,\n setFocusedOption,\n ]);\n\n useGlobalEventListener(document, \"click\", handleClickOutside);\n\n const renderChipWrapper = (\n renderChipProps: RenderChip<Option> | undefined\n ) => {\n if (renderChipProps === undefined) {\n return null;\n }\n const onRemoveWrapper = (\n e: React.MouseEvent | undefined,\n value: ChipValue | undefined\n ) => {\n e?.preventDefault();\n e?.stopPropagation();\n\n renderChipProps.onRemove?.(e, value);\n };\n\n return renderChip!({\n ...renderChipProps,\n onRemove: onRemoveWrapper,\n });\n };\n\n const isPopperDirectionTop = popperPlacement?.includes(\"top\");\n\n const onPlacementChange = React.useCallback(\n (placement?: Placement) => {\n setPopperPlacement(placement);\n },\n [setPopperPlacement]\n );\n\n const onDropdownMouseLeave = React.useCallback(() => {\n setFocusedOptionIndex(null);\n }, [setFocusedOptionIndex]);\n\n const observableRefs = React.useMemo(\n () => [scrollBoxRef, rootRef],\n [rootRef, scrollBoxRef]\n );\n\n const toggleOpened = () => {\n setOpened((prevOpened) => !prevOpened);\n };\n\n return (\n <FormField\n vkuiClass={classNames(\n \"ChipsSelect\",\n opened && \"Select--open\",\n opened && (isPopperDirectionTop ? \"Select--pop-up\" : \"Select--pop-down\")\n )}\n getRootRef={rootRef}\n style={style}\n className={className}\n disabled={disabled}\n role=\"application\"\n aria-disabled={disabled}\n aria-readonly={restProps.readOnly}\n after={\n <IconButton\n vkuiClass=\"ChipsSelect__dropdown\"\n activeMode=\"\"\n hoverMode=\"\"\n // TODO: add label customization\n aria-label={opened ? \"Скрыть\" : \"Развернуть\"}\n onClick={toggleOpened}\n >\n <DropdownIcon vkuiClass=\"ChipsSelect__icon\" opened={opened} />\n </IconButton>\n }\n before={before}\n >\n <ChipsInputBase\n {...restProps}\n tabIndex={tabIndex}\n value={selectedOptions}\n inputValue={fieldValue}\n getNewOptionData={getNewOptionData}\n getOptionLabel={getOptionLabel}\n getOptionValue={getOptionValue}\n renderChip={renderChipWrapper}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n getRef={getRef}\n disabled={disabled}\n onInputChange={handleInputChange}\n />\n {opened && (\n <CustomSelectDropdown\n targetRef={rootRef}\n placement={popupDirection}\n scrollBoxRef={scrollBoxRef}\n observableRefs={observableRefs}\n onPlacementChange={onPlacementChange}\n onMouseLeave={onDropdownMouseLeave}\n fetching={fetching}\n vkuiClass=\"ChipsSelect__options\"\n >\n {showCreatable && (\n <CustomSelectOption\n hovered={focusedOptionIndex === 0}\n onMouseDown={addOptionFromInput}\n onMouseEnter={() => setFocusedOptionIndex(0)}\n >\n {creatableText}\n </CustomSelectOption>\n )}\n {!filteredOptions?.length && !showCreatable && emptyText ? (\n <Caption vkuiClass=\"ChipsSelect__empty\">{emptyText}</Caption>\n ) : (\n filteredOptions.map((option: Option, index: number) => {\n const label = getOptionLabel!(option);\n const hovered =\n focusedOption &&\n getOptionValue!(option) === getOptionValue!(focusedOption);\n const selected = selectedOptions.find(\n (selectedOption: Option) => {\n return (\n getOptionValue!(selectedOption) === getOptionValue!(option)\n );\n }\n );\n const value = getOptionValue!(option);\n\n return (\n <React.Fragment key={`${typeof value}-${value}`}>\n {renderOption!({\n className: prefixClass(\"ChipsSelect__option\"),\n option,\n hovered: Boolean(hovered),\n children: label,\n selected: !!selected,\n getRootRef: (e) => {\n if (e) {\n return (chipsSelectOptions[index] = e);\n }\n return undefined;\n },\n onMouseDown: (e: React.MouseEvent<HTMLDivElement>) => {\n onChangeStart?.(e, option);\n\n if (!e.defaultPrevented) {\n closeAfterSelect && setOpened(false);\n addOption(option);\n clearInput();\n }\n },\n onMouseEnter: () => setFocusedOptionIndex(index),\n })}\n </React.Fragment>\n );\n })\n )}\n </CustomSelectDropdown>\n )}\n </FormField>\n );\n};\n"],"file":"ChipsSelect.js"}
1
+ {"version":3,"file":"ChipsSelect.js","names":["FOCUS_ACTION_NEXT","FOCUS_ACTION_PREV","chipsSelectDefaultProps","chipsInputDefaultProps","emptyText","creatableText","onChangeStart","noop","creatable","fetching","showSelected","closeAfterSelect","options","filterFn","defaultFilterFn","renderOption","option","restProps","ChipsSelect","props","propsWithDefault","style","onFocus","onKeyDown","className","getRef","getRootRef","disabled","placeholder","tabIndex","getOptionValue","getOptionLabel","getNewOptionData","renderChip","popupDirection","inputValue","before","fixDropdownWidth","forceDropdownPortal","useDOM","document","React","useState","undefined","popperPlacement","setPopperPlacement","scrollBoxRef","useRef","rootRef","useExternRef","useChipsSelect","fieldValue","selectedOptions","opened","setOpened","addOptionFromInput","filteredOptions","addOption","handleInputChange","clearInput","focusedOption","setFocusedOption","focusedOptionIndex","setFocusedOptionIndex","showCreatable","Boolean","length","handleFocus","e","handleClickOutside","target","current","contains","chipsSelectOptions","scrollToElement","index","center","dropdown","item","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","focusOptionByIndex","oldIndex","focusOption","nextIndex","type","handleKeyDown","key","defaultPrevented","preventDefault","includes","useEffect","findIndex","value","useGlobalEventListener","renderChipWrapper","renderChipProps","onRemoveWrapper","stopPropagation","onRemove","isPopperDirectionTop","onPlacementChange","useCallback","placement","onDropdownMouseLeave","observableRefs","useMemo","toggleOpened","prevOpened","classNames","readOnly","map","label","hovered","selected","find","selectedOption","prefixClass","children","onMouseDown","onMouseEnter"],"sources":["../../../../src/components/ChipsSelect/ChipsSelect.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { classNames } from \"../../lib/classNames\";\nimport { ChipOption, ChipValue, RenderChip } from \"../Chip/Chip\";\nimport { ChipsInputProps } from \"../ChipsInput/ChipsInput\";\nimport {\n ChipsInputBase,\n chipsInputDefaultProps,\n} from \"../ChipsInputBase/ChipsInputBase\";\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from \"../CustomSelectOption/CustomSelectOption\";\nimport { useChipsSelect } from \"../../hooks/useChipsSelect\";\nimport { noop } from \"../../lib/utils\";\nimport { useDOM } from \"../../lib/dom\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport { defaultFilterFn } from \"../../lib/select\";\nimport { Placement } from \"../Popper/Popper\";\nimport { CustomSelectDropdown } from \"../CustomSelectDropdown/CustomSelectDropdown\";\nimport { FormField } from \"../FormField/FormField\";\nimport { IconButton } from \"../IconButton/IconButton\";\nimport \"./ChipsSelect.css\";\n\nexport interface ChipsSelectProps<Option extends ChipOption>\n extends Omit<ChipsInputProps<Option>, \"after\"> {\n popupDirection?: \"top\" | \"bottom\";\n options?: Option[];\n filterFn?:\n | false\n | ((\n value?: string,\n option?: Option,\n getOptionLabel?: Pick<\n ChipsInputProps<Option>,\n \"getOptionLabel\"\n >[\"getOptionLabel\"]\n ) => boolean);\n /**\n * Возможность создавать чипы которых нет в списке (по enter или с помощью пункта в меню, см creatableText)\n */\n creatable?: boolean;\n /**\n * Отрисовка лоадера вместо списка опций в выпадающем списке\n */\n fetching?: boolean;\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Показывать или скрывать уже выбранные опции\n */\n showSelected?: boolean;\n /**\n * Текст для пункта создающего чипы при клике, так же отвечает за то будет ли показан этот пункт (показывается после того как в списке не отсанется опций)\n */\n creatableText?: string;\n /**\n * Текст который показывается если список опций пуст\n */\n emptyText?: string;\n /**\n * Событие срабатывающее перед onChange\n */\n onChangeStart?: (\n e: React.MouseEvent | React.KeyboardEvent,\n option: Option\n ) => void;\n /**\n * Закрытие выпадающего списка после выбора элемента\n */\n closeAfterSelect?: boolean;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n}\n\ntype FocusActionType = \"next\" | \"prev\";\n\nconst FOCUS_ACTION_NEXT: FocusActionType = \"next\";\nconst FOCUS_ACTION_PREV: FocusActionType = \"prev\";\n\nconst chipsSelectDefaultProps: ChipsSelectProps<any> = {\n ...chipsInputDefaultProps,\n emptyText: \"Ничего не найдено\",\n creatableText: \"Создать значение\",\n onChangeStart: noop,\n creatable: false,\n fetching: false,\n showSelected: true,\n closeAfterSelect: true,\n options: [],\n filterFn: defaultFilterFn,\n renderOption({ option, ...restProps }) {\n return <CustomSelectOption {...restProps} />;\n },\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ChipsSelect\n */\nexport const ChipsSelect = <Option extends ChipOption>(\n props: ChipsSelectProps<Option>\n) => {\n const propsWithDefault = { ...chipsSelectDefaultProps, ...props };\n const {\n style,\n onFocus,\n onKeyDown,\n className,\n fetching,\n renderOption,\n emptyText,\n getRef,\n getRootRef,\n disabled,\n placeholder,\n tabIndex,\n getOptionValue,\n getOptionLabel,\n showSelected,\n getNewOptionData,\n renderChip,\n popupDirection,\n creatable,\n filterFn,\n inputValue,\n creatableText,\n closeAfterSelect,\n onChangeStart,\n before,\n options,\n fixDropdownWidth,\n forceDropdownPortal,\n ...restProps\n } = propsWithDefault;\n\n const { document } = useDOM();\n\n const [popperPlacement, setPopperPlacement] = React.useState<\n Placement | undefined\n >(undefined);\n\n const scrollBoxRef = React.useRef<HTMLDivElement>(null);\n const rootRef = useExternRef(getRef);\n const {\n fieldValue,\n selectedOptions = [],\n opened,\n setOpened,\n addOptionFromInput,\n filteredOptions,\n addOption,\n handleInputChange,\n clearInput,\n focusedOption,\n setFocusedOption,\n focusedOptionIndex,\n setFocusedOptionIndex,\n } = useChipsSelect(propsWithDefault);\n\n const showCreatable = Boolean(\n creatable && creatableText && !filteredOptions.length && fieldValue\n );\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setOpened(true);\n setFocusedOptionIndex(0);\n onFocus!(e);\n };\n\n const handleClickOutside = (e: MouseEvent) => {\n if (\n e.target !== rootRef.current &&\n !rootRef.current?.contains(e.target as Node)\n ) {\n setOpened(false);\n }\n };\n\n const chipsSelectOptions = React.useRef<HTMLElement[]>([]).current;\n\n const scrollToElement = (index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = chipsSelectOptions[index];\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n };\n\n const focusOptionByIndex = (index: number, oldIndex: number) => {\n const { length } = filteredOptions;\n\n if (index < 0) {\n index = length - 1;\n } else if (index >= length) {\n index = 0;\n }\n\n if (index === oldIndex) {\n return;\n }\n\n scrollToElement(index);\n setFocusedOptionIndex(index);\n };\n\n const focusOption = (nextIndex: number | null, type: FocusActionType) => {\n let index = typeof nextIndex !== \"number\" ? -1 : nextIndex;\n\n if (type === FOCUS_ACTION_NEXT) {\n index = index + 1;\n } else if (type === FOCUS_ACTION_PREV) {\n index = index - 1;\n }\n\n if (focusedOptionIndex != null) {\n focusOptionByIndex(index, focusedOptionIndex);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown!(e);\n\n if (e.key === \"ArrowUp\" && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_PREV);\n }\n }\n\n if (e.key === \"ArrowDown\" && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_NEXT);\n }\n }\n\n if (\n e.key === \"Enter\" &&\n !e.defaultPrevented &&\n opened &&\n focusedOptionIndex != null\n ) {\n const option = filteredOptions[focusedOptionIndex];\n\n if (option) {\n onChangeStart!(e, option);\n\n if (!e.defaultPrevented) {\n addOption(option);\n setFocusedOptionIndex(null);\n clearInput();\n closeAfterSelect && setOpened(false);\n e.preventDefault();\n }\n } else if (!creatable) {\n e.preventDefault();\n }\n }\n\n if ([\"Escape\", \"Tab\"].includes(e.key) && !e.defaultPrevented && opened) {\n setOpened(false);\n }\n };\n\n React.useEffect(() => {\n if (focusedOptionIndex != null && filteredOptions[focusedOptionIndex]) {\n setFocusedOption(filteredOptions[focusedOptionIndex]);\n } else if (focusedOptionIndex === null || focusedOptionIndex === 0) {\n setFocusedOption(null);\n }\n }, [focusedOptionIndex, filteredOptions, setFocusedOption]);\n\n React.useEffect(() => {\n const index = focusedOption\n ? filteredOptions.findIndex(({ value }) => value === focusedOption.value)\n : -1;\n\n if (\n index === -1 &&\n !!filteredOptions.length &&\n !showCreatable &&\n closeAfterSelect\n ) {\n setFocusedOption(filteredOptions[0]);\n }\n }, [\n filteredOptions,\n focusedOption,\n showCreatable,\n closeAfterSelect,\n setFocusedOption,\n ]);\n\n useGlobalEventListener(document, \"click\", handleClickOutside);\n\n const renderChipWrapper = (\n renderChipProps: RenderChip<Option> | undefined\n ) => {\n if (renderChipProps === undefined) {\n return null;\n }\n const onRemoveWrapper = (\n e: React.MouseEvent | undefined,\n value: ChipValue | undefined\n ) => {\n e?.preventDefault();\n e?.stopPropagation();\n\n renderChipProps.onRemove?.(e, value);\n };\n\n return renderChip!({\n ...renderChipProps,\n onRemove: onRemoveWrapper,\n });\n };\n\n const isPopperDirectionTop = popperPlacement?.includes(\"top\");\n\n const onPlacementChange = React.useCallback(\n (placement?: Placement) => {\n setPopperPlacement(placement);\n },\n [setPopperPlacement]\n );\n\n const onDropdownMouseLeave = React.useCallback(() => {\n setFocusedOptionIndex(null);\n }, [setFocusedOptionIndex]);\n\n const observableRefs = React.useMemo(\n () => [scrollBoxRef, rootRef],\n [rootRef, scrollBoxRef]\n );\n\n const toggleOpened = () => {\n setOpened((prevOpened) => !prevOpened);\n };\n\n return (\n <FormField\n vkuiClass={classNames(\n \"ChipsSelect\",\n opened && \"Select--open\",\n opened && (isPopperDirectionTop ? \"Select--pop-up\" : \"Select--pop-down\")\n )}\n getRootRef={rootRef}\n style={style}\n className={className}\n disabled={disabled}\n role=\"application\"\n aria-disabled={disabled}\n aria-readonly={restProps.readOnly}\n after={\n <IconButton\n vkuiClass=\"ChipsSelect__dropdown\"\n activeMode=\"\"\n hoverMode=\"\"\n // TODO: add label customization\n aria-label={opened ? \"Скрыть\" : \"Развернуть\"}\n onClick={toggleOpened}\n >\n <DropdownIcon vkuiClass=\"ChipsSelect__icon\" opened={opened} />\n </IconButton>\n }\n before={before}\n >\n <ChipsInputBase\n {...restProps}\n tabIndex={tabIndex}\n value={selectedOptions}\n inputValue={fieldValue}\n getNewOptionData={getNewOptionData}\n getOptionLabel={getOptionLabel}\n getOptionValue={getOptionValue}\n renderChip={renderChipWrapper}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n getRef={getRef}\n disabled={disabled}\n onInputChange={handleInputChange}\n />\n {opened && (\n <CustomSelectDropdown\n targetRef={rootRef}\n placement={popupDirection}\n scrollBoxRef={scrollBoxRef}\n observableRefs={observableRefs}\n onPlacementChange={onPlacementChange}\n onMouseLeave={onDropdownMouseLeave}\n fetching={fetching}\n vkuiClass=\"ChipsSelect__options\"\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n >\n {showCreatable && (\n <CustomSelectOption\n hovered={focusedOptionIndex === 0}\n onMouseDown={addOptionFromInput}\n onMouseEnter={() => setFocusedOptionIndex(0)}\n >\n {creatableText}\n </CustomSelectOption>\n )}\n {!filteredOptions?.length && !showCreatable && emptyText ? (\n <Caption vkuiClass=\"ChipsSelect__empty\">{emptyText}</Caption>\n ) : (\n filteredOptions.map((option: Option, index: number) => {\n const label = getOptionLabel!(option);\n const hovered =\n focusedOption &&\n getOptionValue!(option) === getOptionValue!(focusedOption);\n const selected = selectedOptions.find(\n (selectedOption: Option) => {\n return (\n getOptionValue!(selectedOption) === getOptionValue!(option)\n );\n }\n );\n const value = getOptionValue!(option);\n\n return (\n <React.Fragment key={`${typeof value}-${value}`}>\n {renderOption!({\n className: prefixClass(\"ChipsSelect__option\"),\n option,\n hovered: Boolean(hovered),\n children: label,\n selected: !!selected,\n getRootRef: (e) => {\n if (e) {\n return (chipsSelectOptions[index] = e);\n }\n return undefined;\n },\n onMouseDown: (e: React.MouseEvent<HTMLDivElement>) => {\n onChangeStart?.(e, option);\n\n if (!e.defaultPrevented) {\n closeAfterSelect && setOpened(false);\n addOption(option);\n clearInput();\n }\n },\n onMouseEnter: () => setFocusedOptionIndex(index),\n })}\n </React.Fragment>\n );\n })\n )}\n </CustomSelectDropdown>\n )}\n </FormField>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProvider.tsx"],"names":["warn","useSchemeDetector","node","_scheme","inherit","getScheme","React","useCallback","canUseDOM","undefined","getAttribute","useState","resolvedScheme","setScheme","useEffect","noop","observer","MutationObserver","observe","attributes","attributeFilter","disconnect","deriveAppearance","scheme","Scheme","SPACE_GRAY","VKCOM_DARK","ConfigProvider","props","parentLocale","useContext","LocaleProviderContext","parentConfig","ConfigProviderContext","children","webviewType","isWebView","transitionMotionEnabled","platform","hasNewTokens","appearance","locale","normalizedScheme","document","target","body","process","env","NODE_ENV","hasAttribute","setAttribute","removeAttribute","realScheme","derivedAppearance","VKUITokensClassName","classList","add","remove","configContext"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { AppearanceType } from \"@vkontakte/vk-bridge\";\nimport { canUseDOM, useDOM } from \"../../lib/dom\";\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n} from \"./ConfigProviderContext\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useObjectMemo } from \"../../hooks/useObjectMemo\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport {\n normalizeScheme,\n AppearanceScheme,\n Scheme,\n} from \"../../helpers/scheme\";\nimport {\n AppearanceProvider,\n generateVKUITokensClassName,\n} from \"../AppearanceProvider/AppearanceProvider\";\nimport { LocaleProviderContext } from \"../LocaleProviderContext/LocaleProviderContext\";\n\nexport interface ConfigProviderProps\n extends Partial<ConfigProviderContextInterface> {\n /**\n * @deprecated будет удалено в 5.0.0, устанавливать тему следует через appearance\n * Цветовая схема приложения\n */\n scheme?: AppearanceScheme;\n /**\n Локаль ([список](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry))\n */\n locale?: string;\n children?: React.ReactNode;\n}\n\nconst warn = warnOnce(\"ConfigProvider\");\n\nfunction useSchemeDetector(\n node: HTMLElement | undefined | null,\n _scheme: Scheme | \"inherit\"\n) {\n const inherit = _scheme === \"inherit\";\n const getScheme = React.useCallback(() => {\n if (!inherit || !canUseDOM || !node) {\n return undefined;\n }\n return node.getAttribute(\"scheme\") as Scheme;\n }, [inherit, node]);\n const [resolvedScheme, setScheme] = React.useState(getScheme());\n\n React.useEffect(() => {\n if (!inherit || !node) {\n return noop;\n }\n setScheme(getScheme());\n const observer = new MutationObserver(() => setScheme(getScheme()));\n observer.observe(node, { attributes: true, attributeFilter: [\"scheme\"] });\n return () => observer.disconnect();\n }, [getScheme, inherit, node]);\n\n return _scheme === \"inherit\" ? resolvedScheme : _scheme;\n}\n\nconst deriveAppearance = (scheme: Scheme | undefined): AppearanceType =>\n scheme === Scheme.SPACE_GRAY || scheme === Scheme.VKCOM_DARK\n ? \"dark\"\n : \"light\";\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ConfigProvider\n */\nexport const ConfigProvider = (props: ConfigProviderProps) => {\n const parentLocale = React.useContext(LocaleProviderContext);\n const parentConfig = React.useContext(ConfigProviderContext);\n\n const {\n children,\n webviewType = parentConfig.webviewType,\n isWebView = parentConfig.isWebView,\n transitionMotionEnabled = parentConfig.transitionMotionEnabled,\n platform = parentConfig.platform,\n hasNewTokens = parentConfig.hasNewTokens,\n appearance = parentConfig.appearance,\n scheme,\n locale = parentLocale ?? \"ru\",\n } = props;\n\n const normalizedScheme = normalizeScheme({\n scheme,\n platform,\n appearance,\n });\n const { document } = useDOM();\n const target = document?.body;\n\n useIsomorphicLayoutEffect(() => {\n if (normalizedScheme === \"inherit\") {\n return noop;\n }\n if (\n process.env.NODE_ENV === \"development\" &&\n target?.hasAttribute(\"scheme\") &&\n parentConfig.appearance === undefined // appearance не была вычислена в родительском конфиге, @deprecated будет удалено в 5.0.0\n ) {\n warn(\n '<body scheme> был установлен перед монтированием VKUI - вы не забыли scheme=\"inherit\"?'\n );\n }\n target?.setAttribute(\"scheme\", normalizedScheme);\n return () => target?.removeAttribute(\"scheme\");\n }, [normalizedScheme]);\n\n const realScheme = useSchemeDetector(target, normalizedScheme);\n const derivedAppearance = deriveAppearance(realScheme);\n\n useIsomorphicLayoutEffect(() => {\n const VKUITokensClassName = generateVKUITokensClassName(\n platform,\n derivedAppearance\n );\n\n // eslint-disable-next-line no-restricted-properties\n target?.classList.add(VKUITokensClassName);\n\n return () => {\n // eslint-disable-next-line no-restricted-properties\n target?.classList.remove(VKUITokensClassName);\n };\n }, [platform, derivedAppearance]);\n\n const configContext = useObjectMemo({\n webviewType,\n isWebView,\n transitionMotionEnabled,\n hasNewTokens,\n platform,\n scheme,\n appearance: appearance || derivedAppearance,\n });\n\n return (\n <ConfigProviderContext.Provider value={configContext}>\n <LocaleProviderContext.Provider value={locale}>\n <AppearanceProvider appearance={configContext.appearance}>\n {children}\n </AppearanceProvider>\n </LocaleProviderContext.Provider>\n </ConfigProviderContext.Provider>\n );\n};\n"],"file":"ConfigProvider.js"}
1
+ {"version":3,"file":"ConfigProvider.js","names":["warn","warnOnce","useSchemeDetector","node","_scheme","inherit","getScheme","React","useCallback","canUseDOM","undefined","getAttribute","useState","resolvedScheme","setScheme","useEffect","noop","observer","MutationObserver","observe","attributes","attributeFilter","disconnect","deriveAppearance","scheme","Scheme","SPACE_GRAY","VKCOM_DARK","ConfigProvider","props","parentLocale","useContext","LocaleProviderContext","parentConfig","ConfigProviderContext","children","webviewType","isWebView","transitionMotionEnabled","platform","hasNewTokens","appearance","locale","normalizedScheme","normalizeScheme","useDOM","document","target","body","useIsomorphicLayoutEffect","process","env","NODE_ENV","hasAttribute","setAttribute","removeAttribute","realScheme","derivedAppearance","VKUITokensClassName","generateVKUITokensClassName","classList","add","remove","configContext","useObjectMemo"],"sources":["../../../../src/components/ConfigProvider/ConfigProvider.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { AppearanceType } from \"@vkontakte/vk-bridge\";\nimport { canUseDOM, useDOM } from \"../../lib/dom\";\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n} from \"./ConfigProviderContext\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useObjectMemo } from \"../../hooks/useObjectMemo\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport {\n normalizeScheme,\n AppearanceScheme,\n Scheme,\n} from \"../../helpers/scheme\";\nimport {\n AppearanceProvider,\n generateVKUITokensClassName,\n} from \"../AppearanceProvider/AppearanceProvider\";\nimport { LocaleProviderContext } from \"../LocaleProviderContext/LocaleProviderContext\";\n\nexport interface ConfigProviderProps\n extends Partial<ConfigProviderContextInterface> {\n /**\n * @deprecated будет удалено в 5.0.0, устанавливать тему следует через appearance\n * Цветовая схема приложения\n */\n scheme?: AppearanceScheme;\n /**\n Локаль ([список](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry))\n */\n locale?: string;\n children?: React.ReactNode;\n}\n\nconst warn = warnOnce(\"ConfigProvider\");\n\nfunction useSchemeDetector(\n node: HTMLElement | undefined | null,\n _scheme: Scheme | \"inherit\"\n) {\n const inherit = _scheme === \"inherit\";\n const getScheme = React.useCallback(() => {\n if (!inherit || !canUseDOM || !node) {\n return undefined;\n }\n return node.getAttribute(\"scheme\") as Scheme;\n }, [inherit, node]);\n const [resolvedScheme, setScheme] = React.useState(getScheme());\n\n React.useEffect(() => {\n if (!inherit || !node) {\n return noop;\n }\n setScheme(getScheme());\n const observer = new MutationObserver(() => setScheme(getScheme()));\n observer.observe(node, { attributes: true, attributeFilter: [\"scheme\"] });\n return () => observer.disconnect();\n }, [getScheme, inherit, node]);\n\n return _scheme === \"inherit\" ? resolvedScheme : _scheme;\n}\n\nconst deriveAppearance = (scheme: Scheme | undefined): AppearanceType =>\n scheme === Scheme.SPACE_GRAY || scheme === Scheme.VKCOM_DARK\n ? \"dark\"\n : \"light\";\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ConfigProvider\n */\nexport const ConfigProvider = (props: ConfigProviderProps) => {\n const parentLocale = React.useContext(LocaleProviderContext);\n const parentConfig = React.useContext(ConfigProviderContext);\n\n const {\n children,\n webviewType = parentConfig.webviewType,\n isWebView = parentConfig.isWebView,\n transitionMotionEnabled = parentConfig.transitionMotionEnabled,\n platform = parentConfig.platform,\n hasNewTokens = parentConfig.hasNewTokens,\n appearance = parentConfig.appearance,\n scheme,\n locale = parentLocale ?? \"ru\",\n } = props;\n\n const normalizedScheme = normalizeScheme({\n scheme,\n platform,\n appearance,\n });\n const { document } = useDOM();\n const target = document?.body;\n\n useIsomorphicLayoutEffect(() => {\n if (normalizedScheme === \"inherit\") {\n return noop;\n }\n if (\n process.env.NODE_ENV === \"development\" &&\n target?.hasAttribute(\"scheme\") &&\n parentConfig.appearance === undefined // appearance не была вычислена в родительском конфиге, @deprecated будет удалено в 5.0.0\n ) {\n warn(\n '<body scheme> был установлен перед монтированием VKUI - вы не забыли scheme=\"inherit\"?'\n );\n }\n target?.setAttribute(\"scheme\", normalizedScheme);\n return () => target?.removeAttribute(\"scheme\");\n }, [normalizedScheme]);\n\n const realScheme = useSchemeDetector(target, normalizedScheme);\n const derivedAppearance = deriveAppearance(realScheme);\n\n useIsomorphicLayoutEffect(() => {\n const VKUITokensClassName = generateVKUITokensClassName(\n platform,\n derivedAppearance\n );\n\n // eslint-disable-next-line no-restricted-properties\n target?.classList.add(VKUITokensClassName);\n\n return () => {\n // eslint-disable-next-line no-restricted-properties\n target?.classList.remove(VKUITokensClassName);\n };\n }, [platform, derivedAppearance]);\n\n const configContext = useObjectMemo({\n webviewType,\n isWebView,\n transitionMotionEnabled,\n hasNewTokens,\n platform,\n scheme,\n appearance: appearance || derivedAppearance,\n });\n\n return (\n <ConfigProviderContext.Provider value={configContext}>\n <LocaleProviderContext.Provider value={locale}>\n <AppearanceProvider appearance={configContext.appearance}>\n {children}\n </AppearanceProvider>\n </LocaleProviderContext.Provider>\n </ConfigProviderContext.Provider>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProviderContext.tsx"],"names":["WebviewType","ConfigProviderContext","React","createContext","webviewType","VKAPPS","isWebView","vkBridge","transitionMotionEnabled","platform","hasNewTokens","useConfigProvider","useContext"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;IAEYA,W;;;WAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,2BAAAA,W;;AAkCL,IAAMC,qBAAqB,gBAChCC,KAAK,CAACC,aAAN,CAAoD;AAClDC,EAAAA,WAAW,EAAEJ,WAAW,CAACK,MADyB;AAElDC,EAAAA,SAAS,EAAEC,kBAASD,SAAT,EAFuC;AAGlDE,EAAAA,uBAAuB,EAAE,IAHyB;AAIlDC,EAAAA,QAAQ,EAAE,yBAJwC;AAKlDC,EAAAA,YAAY,EAAE,KALoC,CAMlD;AACA;;AAPkD,CAApD,CADK;;;AAWA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB;AAAA,SAAMT,KAAK,CAACU,UAAN,CAAiBX,qBAAjB,CAAN;AAAA,CAA1B","sourcesContent":["import * as React from \"react\";\nimport vkBridge, { AppearanceType } from \"@vkontakte/vk-bridge\";\nimport { PlatformType, platform } from \"../../lib/platform\";\n\nexport enum WebviewType {\n VKAPPS = \"vkapps\",\n INTERNAL = \"internal\",\n}\n\nexport interface ConfigProviderContextInterface {\n /**\n * Подсказывает приложению, обёрнутому в `ConfigProvider`, где открыто приложение: внутри webview или в мобильном браузере\n */\n isWebView: boolean;\n /**\n * Тип вебвью.<br>\n * В случае `WebviewType.VKAPPS` интерфейс будет адаптирован для отображения в вебвью Mini Apps (системные контролы в правой части шапки)\n */\n webviewType: WebviewType.INTERNAL | WebviewType.VKAPPS;\n /**\n * Тип приложения\n */\n app?: string;\n /**\n * Тип цветовой схемы – `light` или `dark`\n */\n appearance?: AppearanceType;\n /**\n * Включена ли анимация переходов между экранами в `Root` и `View`\n */\n transitionMotionEnabled: boolean;\n /**\n * Платформа\n */\n platform: PlatformType;\n hasNewTokens: boolean;\n}\n\nexport const ConfigProviderContext =\n React.createContext<ConfigProviderContextInterface>({\n webviewType: WebviewType.VKAPPS,\n isWebView: vkBridge.isWebView(),\n transitionMotionEnabled: true,\n platform: platform(),\n hasNewTokens: false,\n // appearance is auto-detected by default\n // appearance: Appearance.LIGHT,\n });\n\nexport const useConfigProvider = () => React.useContext(ConfigProviderContext);\n"],"file":"ConfigProviderContext.js"}
1
+ {"version":3,"file":"ConfigProviderContext.js","names":["WebviewType","ConfigProviderContext","React","createContext","webviewType","VKAPPS","isWebView","vkBridge","transitionMotionEnabled","platform","hasNewTokens","useConfigProvider","useContext"],"sources":["../../../../src/components/ConfigProvider/ConfigProviderContext.tsx"],"sourcesContent":["import * as React from \"react\";\nimport vkBridge, { AppearanceType } from \"@vkontakte/vk-bridge\";\nimport { PlatformType, platform } from \"../../lib/platform\";\n\nexport enum WebviewType {\n VKAPPS = \"vkapps\",\n INTERNAL = \"internal\",\n}\n\nexport interface ConfigProviderContextInterface {\n /**\n * Подсказывает приложению, обёрнутому в `ConfigProvider`, где открыто приложение: внутри webview или в мобильном браузере\n */\n isWebView: boolean;\n /**\n * Тип вебвью.<br>\n * В случае `WebviewType.VKAPPS` интерфейс будет адаптирован для отображения в вебвью Mini Apps (системные контролы в правой части шапки)\n */\n webviewType: WebviewType.INTERNAL | WebviewType.VKAPPS;\n /**\n * Тип приложения\n */\n app?: string;\n /**\n * Тип цветовой схемы – `light` или `dark`\n */\n appearance?: AppearanceType;\n /**\n * Включена ли анимация переходов между экранами в `Root` и `View`\n */\n transitionMotionEnabled: boolean;\n /**\n * Платформа\n */\n platform: PlatformType;\n hasNewTokens: boolean;\n}\n\nexport const ConfigProviderContext =\n React.createContext<ConfigProviderContextInterface>({\n webviewType: WebviewType.VKAPPS,\n isWebView: vkBridge.isWebView(),\n transitionMotionEnabled: true,\n platform: platform(),\n hasNewTokens: false,\n // appearance is auto-detected by default\n // appearance: Appearance.LIGHT,\n });\n\nexport const useConfigProvider = () => React.useContext(ConfigProviderContext);\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;IAEYA,W;;;WAAAA,W;EAAAA,W;EAAAA,W;GAAAA,W,2BAAAA,W;;AAkCL,IAAMC,qBAAqB,gBAChCC,KAAK,CAACC,aAAN,CAAoD;EAClDC,WAAW,EAAEJ,WAAW,CAACK,MADyB;EAElDC,SAAS,EAAEC,iBAAA,CAASD,SAAT,EAFuC;EAGlDE,uBAAuB,EAAE,IAHyB;EAIlDC,QAAQ,EAAE,IAAAA,kBAAA,GAJwC;EAKlDC,YAAY,EAAE,KALoC,CAMlD;EACA;;AAPkD,CAApD,CADK;;;AAWA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB;EAAA,OAAMT,KAAK,CAACU,UAAN,CAAiBX,qBAAjB,CAAN;AAAA,CAA1B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ContentCard/ContentCard.tsx"],"names":["warn","ContentCard","subtitle","header","text","caption","className","mode","style","getRootRef","getRef","maxHeight","image","src","srcSet","alt","width","height","crossOrigin","decoding","loading","referrerPolicy","sizes","useMap","restProps","source","process","env","NODE_ENV","disabled","onClick","href"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Card, CardProps } from \"../Card/Card\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { TappableProps, Tappable } from \"../Tappable/Tappable\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport \"./ContentCard.css\";\n\nexport interface ContentCardProps\n extends HasRootRef<HTMLDivElement>,\n Omit<TappableProps, \"getRootRef\" | \"crossOrigin\">,\n Omit<\n React.ImgHTMLAttributes<HTMLImageElement>,\n keyof React.HTMLAttributes<HTMLImageElement>\n >,\n HasRef<HTMLImageElement> {\n /**\n Текст над заголовком\n */\n subtitle?: React.ReactNode;\n /**\n Заголовок\n */\n header?: React.ReactNode;\n /**\n Текст\n */\n text?: React.ReactNode;\n /**\n Нижний текст\n */\n caption?: React.ReactNode;\n /**\n @deprecated будет удалено в 5.0.0. Используйте src\n */\n image?: string;\n /**\n Максимальная высота изображения\n */\n maxHeight?: number;\n mode?: CardProps[\"mode\"];\n}\n\nconst warn = warnOnce(\"ContentCard\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ContentCard\n */\nexport const ContentCard = ({\n subtitle,\n header,\n text,\n caption,\n // card props\n className,\n mode = \"shadow\",\n style,\n getRootRef,\n // img props\n getRef,\n maxHeight,\n image,\n src,\n srcSet,\n alt,\n width,\n height,\n crossOrigin,\n decoding,\n loading,\n referrerPolicy,\n sizes,\n useMap,\n ...restProps\n}: ContentCardProps) => {\n const source = image || src;\n\n if (image && process.env.NODE_ENV === \"development\") {\n warn(\"Свойство image устарело и будет удалено в 5.0.0. Используйте src\");\n }\n\n return (\n <Card\n mode={mode}\n getRootRef={getRootRef}\n vkuiClass={classNames(\n \"ContentCard\",\n restProps.disabled && \"ContentCard--disabled\"\n )}\n style={style}\n className={className}\n >\n <Tappable\n {...restProps}\n disabled={restProps.disabled || (!restProps.onClick && !restProps.href)}\n hasHover={false}\n hasActive={false}\n vkuiClass=\"ContentCard__tappable\"\n >\n {(source || srcSet) && (\n <img\n ref={getRef}\n vkuiClass=\"ContentCard__img\"\n src={source}\n srcSet={srcSet}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n sizes={sizes}\n useMap={useMap}\n height={height}\n style={{ maxHeight }}\n width=\"100%\"\n />\n )}\n <div vkuiClass=\"ContentCard__body\">\n {hasReactNode(subtitle) && (\n <Caption\n vkuiClass=\"ContentCard__text ContentCard__subtitle\"\n weight=\"1\"\n level=\"3\"\n caps\n >\n {subtitle}\n </Caption>\n )}\n {hasReactNode(header) && (\n <Headline vkuiClass=\"ContentCard__text\" weight=\"2\" level=\"1\">\n {header}\n </Headline>\n )}\n {hasReactNode(text) && (\n <Text vkuiClass=\"ContentCard__text\">{text}</Text>\n )}\n {hasReactNode(caption) && (\n <Caption vkuiClass=\"ContentCard__text ContentCard__caption\">\n {caption}\n </Caption>\n )}\n </div>\n </Tappable>\n </Card>\n );\n};\n"],"file":"ContentCard.js"}
1
+ {"version":3,"file":"ContentCard.js","names":["warn","warnOnce","ContentCard","subtitle","header","text","caption","className","mode","style","getRootRef","getRef","maxHeight","image","src","srcSet","alt","width","height","crossOrigin","decoding","loading","referrerPolicy","sizes","useMap","restProps","source","process","env","NODE_ENV","classNames","disabled","onClick","href","hasReactNode"],"sources":["../../../../src/components/ContentCard/ContentCard.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Card, CardProps } from \"../Card/Card\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { TappableProps, Tappable } from \"../Tappable/Tappable\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport \"./ContentCard.css\";\n\nexport interface ContentCardProps\n extends HasRootRef<HTMLDivElement>,\n Omit<TappableProps, \"getRootRef\" | \"crossOrigin\">,\n Omit<\n React.ImgHTMLAttributes<HTMLImageElement>,\n keyof React.HTMLAttributes<HTMLImageElement>\n >,\n HasRef<HTMLImageElement> {\n /**\n Текст над заголовком\n */\n subtitle?: React.ReactNode;\n /**\n Заголовок\n */\n header?: React.ReactNode;\n /**\n Текст\n */\n text?: React.ReactNode;\n /**\n Нижний текст\n */\n caption?: React.ReactNode;\n /**\n @deprecated будет удалено в 5.0.0. Используйте src\n */\n image?: string;\n /**\n Максимальная высота изображения\n */\n maxHeight?: number;\n mode?: CardProps[\"mode\"];\n}\n\nconst warn = warnOnce(\"ContentCard\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ContentCard\n */\nexport const ContentCard = ({\n subtitle,\n header,\n text,\n caption,\n // card props\n className,\n mode = \"shadow\",\n style,\n getRootRef,\n // img props\n getRef,\n maxHeight,\n image,\n src,\n srcSet,\n alt,\n width,\n height,\n crossOrigin,\n decoding,\n loading,\n referrerPolicy,\n sizes,\n useMap,\n ...restProps\n}: ContentCardProps) => {\n const source = image || src;\n\n if (image && process.env.NODE_ENV === \"development\") {\n warn(\"Свойство image устарело и будет удалено в 5.0.0. Используйте src\");\n }\n\n return (\n <Card\n mode={mode}\n getRootRef={getRootRef}\n vkuiClass={classNames(\n \"ContentCard\",\n restProps.disabled && \"ContentCard--disabled\"\n )}\n style={style}\n className={className}\n >\n <Tappable\n {...restProps}\n disabled={restProps.disabled || (!restProps.onClick && !restProps.href)}\n hasHover={false}\n hasActive={false}\n vkuiClass=\"ContentCard__tappable\"\n >\n {(source || srcSet) && (\n <img\n ref={getRef}\n vkuiClass=\"ContentCard__img\"\n src={source}\n srcSet={srcSet}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n sizes={sizes}\n useMap={useMap}\n height={height}\n style={{ maxHeight }}\n width=\"100%\"\n />\n )}\n <div vkuiClass=\"ContentCard__body\">\n {hasReactNode(subtitle) && (\n <Caption\n vkuiClass=\"ContentCard__text ContentCard__subtitle\"\n weight=\"1\"\n level=\"3\"\n caps\n >\n {subtitle}\n </Caption>\n )}\n {hasReactNode(header) && (\n <Headline vkuiClass=\"ContentCard__text\" weight=\"2\" level=\"1\">\n {header}\n </Headline>\n )}\n {hasReactNode(text) && (\n <Text vkuiClass=\"ContentCard__text\">{text}</Text>\n )}\n {hasReactNode(caption) && (\n <Caption vkuiClass=\"ContentCard__text ContentCard__caption\">\n {caption}\n </Caption>\n )}\n </div>\n </Tappable>\n </Card>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;AAsCA,IAAMA,IAAI,GAAG,IAAAC,kBAAA,EAAS,aAAT,CAAb;AAEA;AACA;AACA;;AACO,IAAMC,WAAW,GAAG,SAAdA,WAAc,OA0BH;EAAA,IAzBtBC,QAyBsB,QAzBtBA,QAyBsB;EAAA,IAxBtBC,MAwBsB,QAxBtBA,MAwBsB;EAAA,IAvBtBC,IAuBsB,QAvBtBA,IAuBsB;EAAA,IAtBtBC,OAsBsB,QAtBtBA,OAsBsB;EAAA,IApBtBC,SAoBsB,QApBtBA,SAoBsB;EAAA,qBAnBtBC,IAmBsB;EAAA,IAnBtBA,IAmBsB,0BAnBf,QAmBe;EAAA,IAlBtBC,KAkBsB,QAlBtBA,KAkBsB;EAAA,IAjBtBC,UAiBsB,QAjBtBA,UAiBsB;EAAA,IAftBC,MAesB,QAftBA,MAesB;EAAA,IAdtBC,SAcsB,QAdtBA,SAcsB;EAAA,IAbtBC,KAasB,QAbtBA,KAasB;EAAA,IAZtBC,GAYsB,QAZtBA,GAYsB;EAAA,IAXtBC,MAWsB,QAXtBA,MAWsB;EAAA,IAVtBC,GAUsB,QAVtBA,GAUsB;EAAA,IATtBC,KASsB,QATtBA,KASsB;EAAA,IARtBC,MAQsB,QARtBA,MAQsB;EAAA,IAPtBC,WAOsB,QAPtBA,WAOsB;EAAA,IANtBC,QAMsB,QANtBA,QAMsB;EAAA,IALtBC,OAKsB,QALtBA,OAKsB;EAAA,IAJtBC,cAIsB,QAJtBA,cAIsB;EAAA,IAHtBC,KAGsB,QAHtBA,KAGsB;EAAA,IAFtBC,MAEsB,QAFtBA,MAEsB;EAAA,IADnBC,SACmB;EACtB,IAAMC,MAAM,GAAGb,KAAK,IAAIC,GAAxB;;EAEA,IAAID,KAAK,IAAIc,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAtC,EAAqD;IACnD7B,IAAI,CAAC,kEAAD,CAAJ;EACD;;EAED,OACE,qCAAC,UAAD;IACE,IAAI,EAAEQ,IADR;IAEE,UAAU,EAAEE,UAFd;IAGE,SAAS,EAAE,IAAAoB,sBAAA,EACT,aADS,EAETL,SAAS,CAACM,QAAV,IAAsB,uBAFb,CAHb;IAOE,KAAK,EAAEtB,KAPT;IAQE,SAAS,EAAEF;EARb,GAUE,qCAAC,kBAAD,6BACMkB,SADN;IAEE,QAAQ,EAAEA,SAAS,CAACM,QAAV,IAAuB,CAACN,SAAS,CAACO,OAAX,IAAsB,CAACP,SAAS,CAACQ,IAFpE;IAGE,QAAQ,EAAE,KAHZ;IAIE,SAAS,EAAE,KAJb;IAKE,SAAS,EAAC;EALZ,IAOG,CAACP,MAAM,IAAIX,MAAX,KACC;IACE,GAAG,EAAEJ,MADP;IAEE,SAAS,EAAC,kBAFZ;IAGE,GAAG,EAAEe,MAHP;IAIE,MAAM,EAAEX,MAJV;IAKE,GAAG,EAAEC,GALP;IAME,WAAW,EAAEG,WANf;IAOE,QAAQ,EAAEC,QAPZ;IAQE,OAAO,EAAEC,OARX;IASE,cAAc,EAAEC,cATlB;IAUE,KAAK,EAAEC,KAVT;IAWE,MAAM,EAAEC,MAXV;IAYE,MAAM,EAAEN,MAZV;IAaE,KAAK,EAAE;MAAEN,SAAS,EAATA;IAAF,CAbT;IAcE,KAAK,EAAC;EAdR,EARJ,EAyBE;IAAK,SAAS,EAAC;EAAf,GACG,IAAAsB,mBAAA,EAAa/B,QAAb,KACC,qCAAC,gBAAD;IACE,SAAS,EAAC,yCADZ;IAEE,MAAM,EAAC,GAFT;IAGE,KAAK,EAAC,GAHR;IAIE,IAAI;EAJN,GAMGA,QANH,CAFJ,EAWG,IAAA+B,mBAAA,EAAa9B,MAAb,KACC,qCAAC,kBAAD;IAAU,SAAS,EAAC,mBAApB;IAAwC,MAAM,EAAC,GAA/C;IAAmD,KAAK,EAAC;EAAzD,GACGA,MADH,CAZJ,EAgBG,IAAA8B,mBAAA,EAAa7B,IAAb,KACC,qCAAC,UAAD;IAAM,SAAS,EAAC;EAAhB,GAAqCA,IAArC,CAjBJ,EAmBG,IAAA6B,mBAAA,EAAa5B,OAAb,KACC,qCAAC,gBAAD;IAAS,SAAS,EAAC;EAAnB,GACGA,OADH,CApBJ,CAzBF,CAVF,CADF;AAgED,CAjGM"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Counter/Counter.tsx"],"names":["Counter","mode","size","children","restProps","React","Children","count","CounterTypography","Caption","Headline"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAWA;AACA;AACA;AACO,IAAMA,OAAO,GAAG,SAAVA,OAAU,OAKH;AAAA,uBAJlBC,IAIkB;AAAA,MAJlBA,IAIkB,0BAJX,WAIW;AAAA,uBAHlBC,IAGkB;AAAA,MAHlBA,IAGkB,0BAHX,GAGW;AAAA,MAFlBC,QAEkB,QAFlBA,QAEkB;AAAA,MADfC,SACe;;AAClB,MAAIC,KAAK,CAACC,QAAN,CAAeC,KAAf,CAAqBJ,QAArB,MAAmC,CAAvC,EAA0C;AACxC,WAAO,IAAP;AACD;;AAED,MAAMK,iBAAiB,GAAGN,IAAI,KAAK,GAAT,GAAeO,gBAAf,GAAyBC,kBAAnD;AAEA,SACE,wEACMN,SADN;AAEE,IAAA,SAAS,EAAE,4BACT,SADS,qBAEGH,IAFH,wBAGKC,IAHL;AAFb,MAQG,yBAAaC,QAAb,KACC,qCAAC,iBAAD;AAAmB,IAAA,SAAS,EAAC,MAA7B;AAAoC,IAAA,SAAS,EAAC,aAA9C;AAA4D,IAAA,KAAK,EAAC;AAAlE,KACGA,QADH,CATJ,CADF;AAgBD,CA5BM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport \"./Counter.css\";\n\nexport interface CounterProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * Тип счетчика. При использовании компонента в качестве значения свойства `after` у `Button` эти значения игнорируются\n */\n mode?: \"secondary\" | \"primary\" | \"prominent\" | \"contrast\";\n size?: \"s\" | \"m\";\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Counter\n */\nexport const Counter = ({\n mode = \"secondary\",\n size = \"m\",\n children,\n ...restProps\n}: CounterProps) => {\n if (React.Children.count(children) === 0) {\n return null;\n }\n\n const CounterTypography = size === \"s\" ? Caption : Headline;\n\n return (\n <span\n {...restProps}\n vkuiClass={classNames(\n \"Counter\",\n `Counter--${mode}`,\n `Counter--s-${size}`\n )}\n >\n {hasReactNode(children) && (\n <CounterTypography Component=\"span\" vkuiClass=\"Counter__in\" level=\"2\">\n {children}\n </CounterTypography>\n )}\n </span>\n );\n};\n"],"file":"Counter.js"}
1
+ {"version":3,"file":"Counter.js","names":["Counter","mode","size","children","restProps","React","Children","count","CounterTypography","Caption","Headline","classNames","hasReactNode"],"sources":["../../../../src/components/Counter/Counter.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport \"./Counter.css\";\n\nexport interface CounterProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * Тип счетчика. При использовании компонента в качестве значения свойства `after` у `Button` эти значения игнорируются\n */\n mode?: \"secondary\" | \"primary\" | \"prominent\" | \"contrast\";\n size?: \"s\" | \"m\";\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Counter\n */\nexport const Counter = ({\n mode = \"secondary\",\n size = \"m\",\n children,\n ...restProps\n}: CounterProps) => {\n if (React.Children.count(children) === 0) {\n return null;\n }\n\n const CounterTypography = size === \"s\" ? Caption : Headline;\n\n return (\n <span\n {...restProps}\n vkuiClass={classNames(\n \"Counter\",\n `Counter--${mode}`,\n `Counter--s-${size}`\n )}\n >\n {hasReactNode(children) && (\n <CounterTypography Component=\"span\" vkuiClass=\"Counter__in\" level=\"2\">\n {children}\n </CounterTypography>\n )}\n </span>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAWA;AACA;AACA;AACO,IAAMA,OAAO,GAAG,SAAVA,OAAU,OAKH;EAAA,qBAJlBC,IAIkB;EAAA,IAJlBA,IAIkB,0BAJX,WAIW;EAAA,qBAHlBC,IAGkB;EAAA,IAHlBA,IAGkB,0BAHX,GAGW;EAAA,IAFlBC,QAEkB,QAFlBA,QAEkB;EAAA,IADfC,SACe;;EAClB,IAAIC,KAAK,CAACC,QAAN,CAAeC,KAAf,CAAqBJ,QAArB,MAAmC,CAAvC,EAA0C;IACxC,OAAO,IAAP;EACD;;EAED,IAAMK,iBAAiB,GAAGN,IAAI,KAAK,GAAT,GAAeO,gBAAf,GAAyBC,kBAAnD;EAEA,OACE,wEACMN,SADN;IAEE,SAAS,EAAE,IAAAO,sBAAA,EACT,SADS,qBAEGV,IAFH,wBAGKC,IAHL;EAFb,IAQG,IAAAU,mBAAA,EAAaT,QAAb,KACC,qCAAC,iBAAD;IAAmB,SAAS,EAAC,MAA7B;IAAoC,SAAS,EAAC,aAA9C;IAA4D,KAAK,EAAC;EAAlE,GACGA,QADH,CATJ,CADF;AAgBD,CA5BM"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CustomScrollView/CustomScrollView.tsx"],"names":["CustomScrollView","className","children","externalBoxRef","boxRef","windowResize","autoHideScrollbar","autoHideScrollbarDelay","document","window","ratio","React","useRef","NaN","lastTrackerTop","clientHeight","trackerHeight","scrollHeight","transformProp","startY","trackerTop","barY","trackerY","setTrackerPosition","scrollTop","current","style","setTrackerPositionFromScroll","progress","resize","localClientHeight","localScrollHeight","localRatio","localTrackerHeight","Math","max","display","height","resizeHandler","add","prop","undefined","setScrollPositionFromTracker","onMove","e","preventDefault","diff","clientY","position","min","trackerVisible","onTargetScroll","onTrackerDragStart","onTrackerDragStop","onTrackerMouseEnter","onTrackerMouseLeave","onUp","unsubscribe","scroll","listeners","subscribe","el","forEach","l","remove","onDragStart"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { DOMProps, useDOM } from \"../../lib/dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useEventListener } from \"../../hooks/useEventListener\";\nimport {\n TrackerOptionsProps,\n useTrackerVisibility,\n} from \"./useTrackerVisibility\";\nimport \"./CustomScrollView.css\";\n\nexport interface CustomScrollViewProps extends DOMProps, TrackerOptionsProps {\n windowResize?: boolean;\n boxRef?: React.Ref<HTMLDivElement>;\n className?: HTMLDivElement[\"className\"];\n children: React.ReactNode;\n}\n\nexport const CustomScrollView = ({\n className,\n children,\n boxRef: externalBoxRef,\n windowResize,\n autoHideScrollbar = false,\n autoHideScrollbarDelay,\n}: CustomScrollViewProps) => {\n const { document, window } = useDOM();\n\n const ratio = React.useRef(NaN);\n const lastTrackerTop = React.useRef(0);\n const clientHeight = React.useRef(0);\n const trackerHeight = React.useRef(0);\n const scrollHeight = React.useRef(0);\n const transformProp = React.useRef(\"\");\n const startY = React.useRef(0);\n const trackerTop = React.useRef(0);\n\n const boxRef = useExternRef(externalBoxRef);\n\n const barY = React.useRef<HTMLDivElement>(null);\n const trackerY = React.useRef<HTMLDivElement>(null);\n\n const setTrackerPosition = (scrollTop: number) => {\n lastTrackerTop.current = scrollTop;\n if (trackerY.current !== null) {\n (trackerY.current.style as any)[\n transformProp.current\n ] = `translate(0, ${scrollTop}px)`;\n }\n };\n\n const setTrackerPositionFromScroll = (scrollTop: number) => {\n const progress = scrollTop / (scrollHeight.current - clientHeight.current);\n setTrackerPosition(\n (clientHeight.current - trackerHeight.current) * progress\n );\n };\n\n const resize = () => {\n if (!boxRef.current || !barY.current || !trackerY.current) {\n return;\n }\n const localClientHeight = boxRef.current.clientHeight;\n const localScrollHeight = boxRef.current.scrollHeight;\n const localRatio = localClientHeight / localScrollHeight;\n const localTrackerHeight = Math.max(localClientHeight * localRatio, 40);\n\n ratio.current = localRatio;\n clientHeight.current = localClientHeight;\n scrollHeight.current = localScrollHeight;\n trackerHeight.current = localTrackerHeight;\n\n if (localRatio >= 1) {\n barY.current.style.display = \"none\";\n } else {\n barY.current.style.display = \"\";\n trackerY.current.style.height = `${localTrackerHeight}px`;\n setTrackerPositionFromScroll(boxRef.current.scrollTop);\n }\n };\n\n const resizeHandler = useEventListener(\"resize\", resize);\n\n useIsomorphicLayoutEffect(() => {\n if (windowResize && window) {\n resizeHandler.add(window);\n }\n }, [windowResize, window]);\n\n useIsomorphicLayoutEffect(() => {\n let style = trackerY.current?.style;\n let prop = \"\";\n if (style !== undefined) {\n if (\"transform\" in style) {\n prop = \"transform\";\n } else if (\"webkitTransform\" in style) {\n prop = \"webkitTransform\";\n }\n }\n transformProp.current = prop;\n }, []);\n\n useIsomorphicLayoutEffect(resize);\n\n const setScrollPositionFromTracker = (trackerTop: number) => {\n const progress =\n trackerTop / (clientHeight.current - trackerHeight.current);\n if (boxRef.current !== null) {\n boxRef.current.scrollTop =\n (scrollHeight.current - clientHeight.current) * progress;\n }\n };\n\n const onMove = (e: MouseEvent) => {\n e.preventDefault();\n const diff = e.clientY - startY.current;\n const position = Math.min(\n Math.max(trackerTop.current + diff, 0),\n clientHeight.current - trackerHeight.current\n );\n\n setScrollPositionFromTracker(position);\n };\n\n const {\n trackerVisible,\n onTargetScroll,\n onTrackerDragStart,\n onTrackerDragStop,\n onTrackerMouseEnter,\n onTrackerMouseLeave,\n } = useTrackerVisibility(autoHideScrollbar, autoHideScrollbarDelay);\n\n const onUp = (e: MouseEvent) => {\n e.preventDefault();\n\n if (autoHideScrollbar) {\n onTrackerDragStop();\n }\n\n unsubscribe();\n };\n\n const scroll = () => {\n if (ratio.current >= 1 || !boxRef.current) {\n return;\n }\n\n if (autoHideScrollbar) {\n onTargetScroll();\n }\n\n setTrackerPositionFromScroll(boxRef.current.scrollTop);\n };\n\n const listeners = [\n useEventListener(\"mousemove\", onMove),\n useEventListener(\"mouseup\", onUp),\n ];\n\n function subscribe(el: Document | undefined) {\n if (el) {\n listeners.forEach((l) => l.add(el));\n }\n }\n\n function unsubscribe() {\n listeners.forEach((l) => l.remove());\n }\n\n const onDragStart = (e: React.MouseEvent) => {\n e.preventDefault();\n startY.current = e.clientY;\n trackerTop.current = lastTrackerTop.current;\n\n if (autoHideScrollbar) {\n onTrackerDragStart();\n }\n\n subscribe(document);\n };\n\n return (\n <div vkuiClass=\"CustomScrollView\" className={className}>\n <div vkuiClass=\"CustomScrollView__barY\" ref={barY}>\n <div\n vkuiClass={classNames(\n \"CustomScrollView__trackerY\",\n !trackerVisible && `CustomScrollView__trackerY--hidden`\n )}\n onMouseEnter={autoHideScrollbar ? onTrackerMouseEnter : undefined}\n onMouseLeave={autoHideScrollbar ? onTrackerMouseLeave : undefined}\n ref={trackerY}\n onMouseDown={onDragStart}\n />\n </div>\n\n <div\n vkuiClass=\"CustomScrollView__box\"\n tabIndex={-1}\n ref={boxRef}\n onScroll={scroll}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"file":"CustomScrollView.js"}
1
+ {"version":3,"file":"CustomScrollView.js","names":["CustomScrollView","className","children","externalBoxRef","boxRef","windowResize","autoHideScrollbar","autoHideScrollbarDelay","useDOM","document","window","ratio","React","useRef","NaN","lastTrackerTop","clientHeight","trackerHeight","scrollHeight","transformProp","startY","trackerTop","useExternRef","barY","trackerY","setTrackerPosition","scrollTop","current","style","setTrackerPositionFromScroll","progress","resize","localClientHeight","localScrollHeight","localRatio","localTrackerHeight","Math","max","display","height","resizeHandler","useEventListener","useIsomorphicLayoutEffect","add","prop","undefined","setScrollPositionFromTracker","onMove","e","preventDefault","diff","clientY","position","min","useTrackerVisibility","trackerVisible","onTargetScroll","onTrackerDragStart","onTrackerDragStop","onTrackerMouseEnter","onTrackerMouseLeave","onUp","unsubscribe","scroll","listeners","subscribe","el","forEach","l","remove","onDragStart","classNames"],"sources":["../../../../src/components/CustomScrollView/CustomScrollView.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { DOMProps, useDOM } from \"../../lib/dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useEventListener } from \"../../hooks/useEventListener\";\nimport {\n TrackerOptionsProps,\n useTrackerVisibility,\n} from \"./useTrackerVisibility\";\nimport \"./CustomScrollView.css\";\n\nexport interface CustomScrollViewProps extends DOMProps, TrackerOptionsProps {\n windowResize?: boolean;\n boxRef?: React.Ref<HTMLDivElement>;\n className?: HTMLDivElement[\"className\"];\n children: React.ReactNode;\n}\n\nexport const CustomScrollView = ({\n className,\n children,\n boxRef: externalBoxRef,\n windowResize,\n autoHideScrollbar = false,\n autoHideScrollbarDelay,\n}: CustomScrollViewProps) => {\n const { document, window } = useDOM();\n\n const ratio = React.useRef(NaN);\n const lastTrackerTop = React.useRef(0);\n const clientHeight = React.useRef(0);\n const trackerHeight = React.useRef(0);\n const scrollHeight = React.useRef(0);\n const transformProp = React.useRef(\"\");\n const startY = React.useRef(0);\n const trackerTop = React.useRef(0);\n\n const boxRef = useExternRef(externalBoxRef);\n\n const barY = React.useRef<HTMLDivElement>(null);\n const trackerY = React.useRef<HTMLDivElement>(null);\n\n const setTrackerPosition = (scrollTop: number) => {\n lastTrackerTop.current = scrollTop;\n if (trackerY.current !== null) {\n (trackerY.current.style as any)[\n transformProp.current\n ] = `translate(0, ${scrollTop}px)`;\n }\n };\n\n const setTrackerPositionFromScroll = (scrollTop: number) => {\n const progress = scrollTop / (scrollHeight.current - clientHeight.current);\n setTrackerPosition(\n (clientHeight.current - trackerHeight.current) * progress\n );\n };\n\n const resize = () => {\n if (!boxRef.current || !barY.current || !trackerY.current) {\n return;\n }\n const localClientHeight = boxRef.current.clientHeight;\n const localScrollHeight = boxRef.current.scrollHeight;\n const localRatio = localClientHeight / localScrollHeight;\n const localTrackerHeight = Math.max(localClientHeight * localRatio, 40);\n\n ratio.current = localRatio;\n clientHeight.current = localClientHeight;\n scrollHeight.current = localScrollHeight;\n trackerHeight.current = localTrackerHeight;\n\n if (localRatio >= 1) {\n barY.current.style.display = \"none\";\n } else {\n barY.current.style.display = \"\";\n trackerY.current.style.height = `${localTrackerHeight}px`;\n setTrackerPositionFromScroll(boxRef.current.scrollTop);\n }\n };\n\n const resizeHandler = useEventListener(\"resize\", resize);\n\n useIsomorphicLayoutEffect(() => {\n if (windowResize && window) {\n resizeHandler.add(window);\n }\n }, [windowResize, window]);\n\n useIsomorphicLayoutEffect(() => {\n let style = trackerY.current?.style;\n let prop = \"\";\n if (style !== undefined) {\n if (\"transform\" in style) {\n prop = \"transform\";\n } else if (\"webkitTransform\" in style) {\n prop = \"webkitTransform\";\n }\n }\n transformProp.current = prop;\n }, []);\n\n useIsomorphicLayoutEffect(resize);\n\n const setScrollPositionFromTracker = (trackerTop: number) => {\n const progress =\n trackerTop / (clientHeight.current - trackerHeight.current);\n if (boxRef.current !== null) {\n boxRef.current.scrollTop =\n (scrollHeight.current - clientHeight.current) * progress;\n }\n };\n\n const onMove = (e: MouseEvent) => {\n e.preventDefault();\n const diff = e.clientY - startY.current;\n const position = Math.min(\n Math.max(trackerTop.current + diff, 0),\n clientHeight.current - trackerHeight.current\n );\n\n setScrollPositionFromTracker(position);\n };\n\n const {\n trackerVisible,\n onTargetScroll,\n onTrackerDragStart,\n onTrackerDragStop,\n onTrackerMouseEnter,\n onTrackerMouseLeave,\n } = useTrackerVisibility(autoHideScrollbar, autoHideScrollbarDelay);\n\n const onUp = (e: MouseEvent) => {\n e.preventDefault();\n\n if (autoHideScrollbar) {\n onTrackerDragStop();\n }\n\n unsubscribe();\n };\n\n const scroll = () => {\n if (ratio.current >= 1 || !boxRef.current) {\n return;\n }\n\n if (autoHideScrollbar) {\n onTargetScroll();\n }\n\n setTrackerPositionFromScroll(boxRef.current.scrollTop);\n };\n\n const listeners = [\n useEventListener(\"mousemove\", onMove),\n useEventListener(\"mouseup\", onUp),\n ];\n\n function subscribe(el: Document | undefined) {\n if (el) {\n listeners.forEach((l) => l.add(el));\n }\n }\n\n function unsubscribe() {\n listeners.forEach((l) => l.remove());\n }\n\n const onDragStart = (e: React.MouseEvent) => {\n e.preventDefault();\n startY.current = e.clientY;\n trackerTop.current = lastTrackerTop.current;\n\n if (autoHideScrollbar) {\n onTrackerDragStart();\n }\n\n subscribe(document);\n };\n\n return (\n <div vkuiClass=\"CustomScrollView\" className={className}>\n <div vkuiClass=\"CustomScrollView__barY\" ref={barY}>\n <div\n vkuiClass={classNames(\n \"CustomScrollView__trackerY\",\n !trackerVisible && `CustomScrollView__trackerY--hidden`\n )}\n onMouseEnter={autoHideScrollbar ? onTrackerMouseEnter : undefined}\n onMouseLeave={autoHideScrollbar ? onTrackerMouseLeave : undefined}\n ref={trackerY}\n onMouseDown={onDragStart}\n />\n </div>\n\n <div\n vkuiClass=\"CustomScrollView__box\"\n tabIndex={-1}\n ref={boxRef}\n onScroll={scroll}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CustomScrollView/useTrackerVisibility.ts"],"names":["useTrackerVisibility","autoHideScrollbar","autoHideScrollbarDelay","React","useState","trackerVisible","setTrackerVisible","isMouseOver","useRef","isTrackerDragging","setVisibilityTimeout","set","clearVisibilityTimeout","clear","onTrackerDragStart","useCallback","current","onTrackerDragStop","queueTrackerVisibility","onTrackerMouseEnter","onTrackerMouseLeave","onTargetScroll"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,GAGP;AAAA,MAF3BC,iBAE2B,uEAFP,KAEO;AAAA,MAD3BC,sBAC2B,uEADF,GACE;;AAC3B,wBAA4CC,KAAK,CAACC,QAAN,CAC1C,CAACH,iBADyC,CAA5C;AAAA;AAAA,MAAOI,cAAP;AAAA,MAAuBC,iBAAvB;;AAGA,MAAMC,WAAW,GAAGJ,KAAK,CAACK,MAAN,CAAa,KAAb,CAApB;AACA,MAAMC,iBAAiB,GAAGN,KAAK,CAACK,MAAN,CAAa,KAAb,CAA1B;;AAEA,oBACE,6BAAW;AAAA,WAAMF,iBAAiB,CAAC,KAAD,CAAvB;AAAA,GAAX,EAA2CJ,sBAA3C,CADF;AAAA,MAAaQ,oBAAb,eAAQC,GAAR;AAAA,MAA0CC,sBAA1C,eAAmCC,KAAnC;;AAGA,MAAMC,kBAAkB,GAAGX,KAAK,CAACY,WAAN,CAAkB,YAAM;AACjDH,IAAAA,sBAAsB;AACtBN,IAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACAG,IAAAA,iBAAiB,CAACO,OAAlB,GAA4B,IAA5B;AACD,GAJ0B,EAIxB,CAACJ,sBAAD,CAJwB,CAA3B;AAMA,MAAMK,iBAAiB,GAAGd,KAAK,CAACY,WAAN,CAAkB,YAAM;AAChDN,IAAAA,iBAAiB,CAACO,OAAlB,GAA4B,KAA5B;;AACA,QAAI,CAACT,WAAW,CAACS,OAAjB,EAA0B;AACxBN,MAAAA,oBAAoB;AACrB;AACF,GALyB,EAKvB,CAACA,oBAAD,EAAuBH,WAAvB,CALuB,CAA1B;AAOA;AACF;AACA;AACA;;AACE,MAAMW,sBAAsB,GAAGf,KAAK,CAACY,WAAN,CAAkB,YAAM;AACrD,QAAIN,iBAAiB,CAACO,OAAtB,EAA+B;AAC7B;AACD;;AACDV,IAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACAI,IAAAA,oBAAoB;AACrB,GAN8B,EAM5B,CAACA,oBAAD,CAN4B,CAA/B;AAQA,MAAMS,mBAAmB,GAAGhB,KAAK,CAACY,WAAN,CAAkB,YAAM;AAClDH,IAAAA,sBAAsB;AACtBL,IAAAA,WAAW,CAACS,OAAZ,GAAsB,IAAtB;AACAV,IAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD,GAJ2B,EAIzB,CAACM,sBAAD,CAJyB,CAA5B;AAMA,MAAMQ,mBAAmB,GAAGjB,KAAK,CAACY,WAAN,CAAkB,YAAM;AAClDG,IAAAA,sBAAsB;AACtBX,IAAAA,WAAW,CAACS,OAAZ,GAAsB,KAAtB;AACD,GAH2B,EAGzB,CAACE,sBAAD,CAHyB,CAA5B;AAKA,MAAMG,cAAc,GAAGlB,KAAK,CAACY,WAAN,CAAkB,YAAM;AAC7CG,IAAAA,sBAAsB;AACvB,GAFsB,EAEpB,CAACA,sBAAD,CAFoB,CAAvB;AAIA,SAAO;AACLb,IAAAA,cAAc,EAAdA,cADK;AAELS,IAAAA,kBAAkB,EAAlBA,kBAFK;AAGLG,IAAAA,iBAAiB,EAAjBA,iBAHK;AAILE,IAAAA,mBAAmB,EAAnBA,mBAJK;AAKLC,IAAAA,mBAAmB,EAAnBA,mBALK;AAMLC,IAAAA,cAAc,EAAdA;AANK,GAAP;AAQD,CA7DM","sourcesContent":["import * as React from \"react\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\n\n/**\n * Хук, который позволяет управлять видимостью ползунка скроллбара.\n * @param autoHideScrollbar - скрывать ли ползунок скроллбара\n * @param autoHideScrollbarDelay - через какое кол-во миллисекунд ползунок скроллбара скрывается\n * @returns Объект, содержащий параметры, которые позволяют управлять видимостью ползунка\n */\nexport const useTrackerVisibility = (\n autoHideScrollbar = false,\n autoHideScrollbarDelay = 500\n): TrackerVisibilityProps => {\n const [trackerVisible, setTrackerVisible] = React.useState(\n !autoHideScrollbar\n );\n const isMouseOver = React.useRef(false);\n const isTrackerDragging = React.useRef(false);\n\n const { set: setVisibilityTimeout, clear: clearVisibilityTimeout } =\n useTimeout(() => setTrackerVisible(false), autoHideScrollbarDelay);\n\n const onTrackerDragStart = React.useCallback(() => {\n clearVisibilityTimeout();\n setTrackerVisible(true);\n isTrackerDragging.current = true;\n }, [clearVisibilityTimeout]);\n\n const onTrackerDragStop = React.useCallback(() => {\n isTrackerDragging.current = false;\n if (!isMouseOver.current) {\n setVisibilityTimeout();\n }\n }, [setVisibilityTimeout, isMouseOver]);\n\n /**\n * Позволяет \"запланировать\" скрытие ползунка через delay миллисекунд. Если тайм-аут не успевает сработать, то каждый\n * последующий вызов функции откладывает скрытие ползунка на delay миллисекунд\n */\n const queueTrackerVisibility = React.useCallback(() => {\n if (isTrackerDragging.current) {\n return;\n }\n setTrackerVisible(true);\n setVisibilityTimeout();\n }, [setVisibilityTimeout]);\n\n const onTrackerMouseEnter = React.useCallback(() => {\n clearVisibilityTimeout();\n isMouseOver.current = true;\n setTrackerVisible(true);\n }, [clearVisibilityTimeout]);\n\n const onTrackerMouseLeave = React.useCallback(() => {\n queueTrackerVisibility();\n isMouseOver.current = false;\n }, [queueTrackerVisibility]);\n\n const onTargetScroll = React.useCallback(() => {\n queueTrackerVisibility();\n }, [queueTrackerVisibility]);\n\n return {\n trackerVisible,\n onTrackerDragStart,\n onTrackerDragStop,\n onTrackerMouseEnter,\n onTrackerMouseLeave,\n onTargetScroll,\n };\n};\n\nexport interface TrackerOptionsProps {\n /**\n * Скрывать ли ползунок скроллбара\n */\n autoHideScrollbar?: boolean;\n /**\n * Через какое кол-во миллисекунд ползунок скроллбара скрывается\n */\n autoHideScrollbarDelay?: number;\n}\n\nexport interface TrackerVisibilityProps {\n /**\n * Отвечает за видимость ползунка\n */\n trackerVisible: boolean;\n /**\n * Функция для обработки события у блока со скроллом\n */\n onTargetScroll(this: void): void;\n /**\n * Функция для обработки начала drag event ползунка\n */\n onTrackerDragStart(this: void): void;\n /**\n * Функция для обработки окончания drag event ползунка\n */\n onTrackerDragStop(this: void): void;\n /**\n * Функция для обработки mouseLeave event ползунка\n */\n onTrackerMouseEnter(this: void): void;\n /**\n * Функция для обработки mouseEnter event ползунка\n */\n onTrackerMouseLeave(this: void): void;\n}\n"],"file":"useTrackerVisibility.js"}
1
+ {"version":3,"file":"useTrackerVisibility.js","names":["useTrackerVisibility","autoHideScrollbar","autoHideScrollbarDelay","React","useState","trackerVisible","setTrackerVisible","isMouseOver","useRef","isTrackerDragging","useTimeout","setVisibilityTimeout","set","clearVisibilityTimeout","clear","onTrackerDragStart","useCallback","current","onTrackerDragStop","queueTrackerVisibility","onTrackerMouseEnter","onTrackerMouseLeave","onTargetScroll"],"sources":["../../../../src/components/CustomScrollView/useTrackerVisibility.ts"],"sourcesContent":["import * as React from \"react\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\n\n/**\n * Хук, который позволяет управлять видимостью ползунка скроллбара.\n * @param autoHideScrollbar - скрывать ли ползунок скроллбара\n * @param autoHideScrollbarDelay - через какое кол-во миллисекунд ползунок скроллбара скрывается\n * @returns Объект, содержащий параметры, которые позволяют управлять видимостью ползунка\n */\nexport const useTrackerVisibility = (\n autoHideScrollbar = false,\n autoHideScrollbarDelay = 500\n): TrackerVisibilityProps => {\n const [trackerVisible, setTrackerVisible] = React.useState(\n !autoHideScrollbar\n );\n const isMouseOver = React.useRef(false);\n const isTrackerDragging = React.useRef(false);\n\n const { set: setVisibilityTimeout, clear: clearVisibilityTimeout } =\n useTimeout(() => setTrackerVisible(false), autoHideScrollbarDelay);\n\n const onTrackerDragStart = React.useCallback(() => {\n clearVisibilityTimeout();\n setTrackerVisible(true);\n isTrackerDragging.current = true;\n }, [clearVisibilityTimeout]);\n\n const onTrackerDragStop = React.useCallback(() => {\n isTrackerDragging.current = false;\n if (!isMouseOver.current) {\n setVisibilityTimeout();\n }\n }, [setVisibilityTimeout, isMouseOver]);\n\n /**\n * Позволяет \"запланировать\" скрытие ползунка через delay миллисекунд. Если тайм-аут не успевает сработать, то каждый\n * последующий вызов функции откладывает скрытие ползунка на delay миллисекунд\n */\n const queueTrackerVisibility = React.useCallback(() => {\n if (isTrackerDragging.current) {\n return;\n }\n setTrackerVisible(true);\n setVisibilityTimeout();\n }, [setVisibilityTimeout]);\n\n const onTrackerMouseEnter = React.useCallback(() => {\n clearVisibilityTimeout();\n isMouseOver.current = true;\n setTrackerVisible(true);\n }, [clearVisibilityTimeout]);\n\n const onTrackerMouseLeave = React.useCallback(() => {\n queueTrackerVisibility();\n isMouseOver.current = false;\n }, [queueTrackerVisibility]);\n\n const onTargetScroll = React.useCallback(() => {\n queueTrackerVisibility();\n }, [queueTrackerVisibility]);\n\n return {\n trackerVisible,\n onTrackerDragStart,\n onTrackerDragStop,\n onTrackerMouseEnter,\n onTrackerMouseLeave,\n onTargetScroll,\n };\n};\n\nexport interface TrackerOptionsProps {\n /**\n * Скрывать ли ползунок скроллбара\n */\n autoHideScrollbar?: boolean;\n /**\n * Через какое кол-во миллисекунд ползунок скроллбара скрывается\n */\n autoHideScrollbarDelay?: number;\n}\n\nexport interface TrackerVisibilityProps {\n /**\n * Отвечает за видимость ползунка\n */\n trackerVisible: boolean;\n /**\n * Функция для обработки события у блока со скроллом\n */\n onTargetScroll(this: void): void;\n /**\n * Функция для обработки начала drag event ползунка\n */\n onTrackerDragStart(this: void): void;\n /**\n * Функция для обработки окончания drag event ползунка\n */\n onTrackerDragStop(this: void): void;\n /**\n * Функция для обработки mouseLeave event ползунка\n */\n onTrackerMouseEnter(this: void): void;\n /**\n * Функция для обработки mouseEnter event ползунка\n */\n onTrackerMouseLeave(this: void): void;\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,GAGP;EAAA,IAF3BC,iBAE2B,uEAFP,KAEO;EAAA,IAD3BC,sBAC2B,uEADF,GACE;;EAC3B,sBAA4CC,KAAK,CAACC,QAAN,CAC1C,CAACH,iBADyC,CAA5C;EAAA;EAAA,IAAOI,cAAP;EAAA,IAAuBC,iBAAvB;;EAGA,IAAMC,WAAW,GAAGJ,KAAK,CAACK,MAAN,CAAa,KAAb,CAApB;EACA,IAAMC,iBAAiB,GAAGN,KAAK,CAACK,MAAN,CAAa,KAAb,CAA1B;;EAEA,kBACE,IAAAE,uBAAA,EAAW;IAAA,OAAMJ,iBAAiB,CAAC,KAAD,CAAvB;EAAA,CAAX,EAA2CJ,sBAA3C,CADF;EAAA,IAAaS,oBAAb,eAAQC,GAAR;EAAA,IAA0CC,sBAA1C,eAAmCC,KAAnC;;EAGA,IAAMC,kBAAkB,GAAGZ,KAAK,CAACa,WAAN,CAAkB,YAAM;IACjDH,sBAAsB;IACtBP,iBAAiB,CAAC,IAAD,CAAjB;IACAG,iBAAiB,CAACQ,OAAlB,GAA4B,IAA5B;EACD,CAJ0B,EAIxB,CAACJ,sBAAD,CAJwB,CAA3B;EAMA,IAAMK,iBAAiB,GAAGf,KAAK,CAACa,WAAN,CAAkB,YAAM;IAChDP,iBAAiB,CAACQ,OAAlB,GAA4B,KAA5B;;IACA,IAAI,CAACV,WAAW,CAACU,OAAjB,EAA0B;MACxBN,oBAAoB;IACrB;EACF,CALyB,EAKvB,CAACA,oBAAD,EAAuBJ,WAAvB,CALuB,CAA1B;EAOA;AACF;AACA;AACA;;EACE,IAAMY,sBAAsB,GAAGhB,KAAK,CAACa,WAAN,CAAkB,YAAM;IACrD,IAAIP,iBAAiB,CAACQ,OAAtB,EAA+B;MAC7B;IACD;;IACDX,iBAAiB,CAAC,IAAD,CAAjB;IACAK,oBAAoB;EACrB,CAN8B,EAM5B,CAACA,oBAAD,CAN4B,CAA/B;EAQA,IAAMS,mBAAmB,GAAGjB,KAAK,CAACa,WAAN,CAAkB,YAAM;IAClDH,sBAAsB;IACtBN,WAAW,CAACU,OAAZ,GAAsB,IAAtB;IACAX,iBAAiB,CAAC,IAAD,CAAjB;EACD,CAJ2B,EAIzB,CAACO,sBAAD,CAJyB,CAA5B;EAMA,IAAMQ,mBAAmB,GAAGlB,KAAK,CAACa,WAAN,CAAkB,YAAM;IAClDG,sBAAsB;IACtBZ,WAAW,CAACU,OAAZ,GAAsB,KAAtB;EACD,CAH2B,EAGzB,CAACE,sBAAD,CAHyB,CAA5B;EAKA,IAAMG,cAAc,GAAGnB,KAAK,CAACa,WAAN,CAAkB,YAAM;IAC7CG,sBAAsB;EACvB,CAFsB,EAEpB,CAACA,sBAAD,CAFoB,CAAvB;EAIA,OAAO;IACLd,cAAc,EAAdA,cADK;IAELU,kBAAkB,EAAlBA,kBAFK;IAGLG,iBAAiB,EAAjBA,iBAHK;IAILE,mBAAmB,EAAnBA,mBAJK;IAKLC,mBAAmB,EAAnBA,mBALK;IAMLC,cAAc,EAAdA;EANK,CAAP;AAQD,CA7DM"}