@vkontakte/vkui 4.28.0 → 4.28.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.browserslistrc +2 -0
- package/.cache/.eslintcache +1 -0
- package/.cache/.stylelintcache +1 -0
- package/.cache/.tsbuildinfo +58386 -0
- package/.cache/ts/src/appearance/constants.d.ts +1 -0
- package/.cache/ts/src/components/ActionSheet/ActionSheet.d.ts +26 -0
- package/.cache/ts/src/components/ActionSheet/ActionSheetContext.d.ts +8 -0
- package/.cache/ts/src/components/ActionSheet/ActionSheetDropdown.d.ts +4 -0
- package/.cache/ts/src/components/ActionSheet/ActionSheetDropdownDesktop.d.ts +4 -0
- package/.cache/ts/src/components/ActionSheet/types.d.ts +9 -0
- package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +20 -0
- package/.cache/ts/src/components/AdaptivityProvider/AdaptivityContext.d.ts +46 -0
- package/.cache/ts/src/components/AdaptivityProvider/AdaptivityProvider.d.ts +10 -0
- package/.cache/ts/src/components/Alert/Alert.d.ts +24 -0
- package/.cache/ts/src/components/AppRoot/AppRoot.d.ts +14 -0
- package/.cache/ts/src/components/AppRoot/AppRootContext.d.ts +9 -0
- package/.cache/ts/src/components/AppRoot/AppRootPortal.d.ts +5 -0
- package/.cache/ts/src/components/AppRoot/ScrollContext.d.ts +23 -0
- package/.cache/ts/src/components/AppearanceProvider/AppearanceProvider.d.ts +7 -0
- package/.cache/ts/src/components/AppearanceProvider/AppearanceProviderContext.d.ts +3 -0
- package/.cache/ts/src/components/Avatar/Avatar.d.ts +22 -0
- package/.cache/ts/src/components/Badge/Badge.d.ts +6 -0
- package/.cache/ts/src/components/Banner/Banner.d.ts +65 -0
- package/.cache/ts/src/components/Button/Button.d.ts +20 -0
- package/.cache/ts/src/components/ButtonGroup/ButtonGroup.d.ts +20 -0
- package/.cache/ts/src/components/Calendar/Calendar.d.ts +21 -0
- package/.cache/ts/src/components/CalendarDay/CalendarDay.d.ts +22 -0
- package/.cache/ts/src/components/CalendarDays/CalendarDays.d.ts +22 -0
- package/.cache/ts/src/components/CalendarHeader/CalendarHeader.d.ts +16 -0
- package/.cache/ts/src/components/CalendarRange/CalendarRange.d.ts +16 -0
- package/.cache/ts/src/components/CalendarTime/CalendarTime.d.ts +11 -0
- package/.cache/ts/src/components/Card/Card.d.ts +7 -0
- package/.cache/ts/src/components/CardGrid/CardGrid.d.ts +8 -0
- package/.cache/ts/src/components/CardScroll/CardScroll.d.ts +12 -0
- package/.cache/ts/src/components/Cell/Cell.d.ts +47 -0
- package/.cache/ts/src/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
- package/.cache/ts/src/components/Cell/CellDragger/CellDragger.d.ts +6 -0
- package/.cache/ts/src/components/Cell/useDraggable.d.ts +13 -0
- package/.cache/ts/src/components/CellButton/CellButton.d.ts +9 -0
- package/.cache/ts/src/components/Checkbox/Checkbox.d.ts +10 -0
- package/.cache/ts/src/components/Chip/Chip.d.ts +16 -0
- package/.cache/ts/src/components/ChipsInput/ChipsInput.d.ts +30 -0
- package/.cache/ts/src/components/ChipsInput/useChipsInput.d.ts +14 -0
- package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +40 -0
- package/.cache/ts/src/components/ChipsSelect/useChipsSelect.d.ts +22 -0
- package/.cache/ts/src/components/ClickPopper/ClickPopper.d.ts +21 -0
- package/.cache/ts/src/components/ConfigProvider/ConfigProvider.d.ts +16 -0
- package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +36 -0
- package/.cache/ts/src/components/ContentCard/ContentCard.d.ts +34 -0
- package/.cache/ts/src/components/Counter/Counter.d.ts +11 -0
- package/.cache/ts/src/components/CustomScrollView/CustomScrollView.d.ts +10 -0
- package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +65 -0
- package/.cache/ts/src/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +15 -0
- package/.cache/ts/src/components/CustomSelectOption/CustomSelectOption.d.ts +15 -0
- package/.cache/ts/src/components/DateInput/DateInput.d.ts +12 -0
- package/.cache/ts/src/components/DatePicker/DatePicker.d.ts +24 -0
- package/.cache/ts/src/components/DateRangeInput/DateRangeInput.d.ts +18 -0
- package/.cache/ts/src/components/Div/Div.d.ts +6 -0
- package/.cache/ts/src/components/Dropdown/Dropdown.d.ts +8 -0
- package/.cache/ts/src/components/DropdownIcon/DropdownIcon.d.ts +3 -0
- package/.cache/ts/src/components/Epic/Epic.d.ts +10 -0
- package/.cache/ts/src/components/Epic/ScrollSaver.d.ts +6 -0
- package/.cache/ts/src/components/File/File.d.ts +9 -0
- package/.cache/ts/src/components/FixedLayout/FixedLayout.d.ts +19 -0
- package/.cache/ts/src/components/FocusTrap/FocusTrap.d.ts +8 -0
- package/.cache/ts/src/components/FocusVisible/FocusVisible.d.ts +8 -0
- package/.cache/ts/src/components/Footer/Footer.d.ts +5 -0
- package/.cache/ts/src/components/FormField/FormField.d.ts +14 -0
- package/.cache/ts/src/components/FormItem/FormItem.d.ts +14 -0
- package/.cache/ts/src/components/FormLayout/FormLayout.d.ts +6 -0
- package/.cache/ts/src/components/FormLayoutGroup/FormLayoutGroup.d.ts +13 -0
- package/.cache/ts/src/components/FormStatus/FormStatus.d.ts +7 -0
- package/.cache/ts/src/components/Gallery/Gallery.d.ts +39 -0
- package/.cache/ts/src/components/Gradient/Gradient.d.ts +7 -0
- package/.cache/ts/src/components/GridAvatar/GridAvatar.d.ts +8 -0
- package/.cache/ts/src/components/Group/Group.d.ts +23 -0
- package/.cache/ts/src/components/Header/Header.d.ts +18 -0
- package/.cache/ts/src/components/HorizontalCell/HorizontalCell.d.ts +10 -0
- package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +19 -0
- package/.cache/ts/src/components/HorizontalScroll/HorizontalScrollArrow.d.ts +8 -0
- package/.cache/ts/src/components/HoverPopper/HoverPopper.d.ts +29 -0
- package/.cache/ts/src/components/IconButton/IconButton.d.ts +11 -0
- package/.cache/ts/src/components/InfoRow/InfoRow.d.ts +7 -0
- package/.cache/ts/src/components/InitialsAvatar/InitialsAvatar.d.ts +32 -0
- package/.cache/ts/src/components/Input/Input.d.ts +9 -0
- package/.cache/ts/src/components/InputLike/InputLike.d.ts +10 -0
- package/.cache/ts/src/components/InputLike/InputLikeDivider.d.ts +3 -0
- package/.cache/ts/src/components/Link/Link.d.ts +6 -0
- package/.cache/ts/src/components/List/List.d.ts +4 -0
- package/.cache/ts/src/components/List/ListContext.d.ts +4 -0
- package/.cache/ts/src/components/LocaleProviderContext/LocaleProviderContext.d.ts +2 -0
- package/.cache/ts/src/components/MiniInfoCell/MiniInfoCell.d.ts +39 -0
- package/.cache/ts/src/components/ModalCard/ModalCard.d.ts +10 -0
- package/.cache/ts/src/components/ModalCardBase/ModalCardBase.d.ts +32 -0
- package/.cache/ts/src/components/ModalDismissButton/ModalDismissButton.d.ts +5 -0
- package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +22 -0
- package/.cache/ts/src/components/ModalPageHeader/ModalPageHeader.d.ts +8 -0
- package/.cache/ts/src/components/ModalRoot/ModalRoot.d.ts +16 -0
- package/.cache/ts/src/components/ModalRoot/ModalRootAdaptive.d.ts +10 -0
- package/.cache/ts/src/components/ModalRoot/ModalRootContext.d.ts +20 -0
- package/.cache/ts/src/components/ModalRoot/ModalRootDesktop.d.ts +16 -0
- package/.cache/ts/src/components/ModalRoot/constants.d.ts +3 -0
- package/.cache/ts/src/components/ModalRoot/types.d.ts +45 -0
- package/.cache/ts/src/components/ModalRoot/useModalManager.d.ts +37 -0
- package/.cache/ts/src/components/ModalRoot/withModalRootContext.d.ts +5 -0
- package/.cache/ts/src/components/NativeSelect/NativeSelect.d.ts +15 -0
- package/.cache/ts/src/components/NavTransitionContext/NavTransitionContext.d.ts +7 -0
- package/.cache/ts/src/components/Pagination/Pagination.d.ts +42 -0
- package/.cache/ts/src/components/Panel/Panel.d.ts +9 -0
- package/.cache/ts/src/components/PanelHeader/PanelHeader.d.ts +21 -0
- package/.cache/ts/src/components/PanelHeaderBack/PanelHeaderBack.d.ts +9 -0
- package/.cache/ts/src/components/PanelHeaderButton/PanelHeaderButton.d.ts +8 -0
- package/.cache/ts/src/components/PanelHeaderClose/PanelHeaderClose.d.ts +4 -0
- package/.cache/ts/src/components/PanelHeaderContent/PanelHeaderContent.d.ts +9 -0
- package/.cache/ts/src/components/PanelHeaderContext/PanelHeaderContext.d.ts +7 -0
- package/.cache/ts/src/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +18 -0
- package/.cache/ts/src/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +4 -0
- package/.cache/ts/src/components/PanelSpinner/PanelSpinner.d.ts +7 -0
- package/.cache/ts/src/components/Placeholder/Placeholder.d.ts +23 -0
- package/.cache/ts/src/components/PopoutRoot/PopoutRoot.d.ts +10 -0
- package/.cache/ts/src/components/PopoutWrapper/PopoutWrapper.d.ts +10 -0
- package/.cache/ts/src/components/Popper/Popper.d.ts +32 -0
- package/.cache/ts/src/components/Progress/Progress.d.ts +8 -0
- package/.cache/ts/src/components/PromoBanner/PromoBanner.d.ts +40 -0
- package/.cache/ts/src/components/PullToRefresh/PullToRefresh.d.ts +37 -0
- package/.cache/ts/src/components/PullToRefresh/PullToRefreshSpinner.d.ts +11 -0
- package/.cache/ts/src/components/Radio/Radio.d.ts +9 -0
- package/.cache/ts/src/components/RadioGroup/RadioGroup.d.ts +6 -0
- package/.cache/ts/src/components/RangeSlider/RangeSlider.d.ts +6 -0
- package/.cache/ts/src/components/RangeSlider/UniversalSlider.d.ts +16 -0
- package/.cache/ts/src/components/Removable/Removable.d.ts +21 -0
- package/.cache/ts/src/components/RichCell/RichCell.d.ts +37 -0
- package/.cache/ts/src/components/RichTooltip/RichTooltip.d.ts +5 -0
- package/.cache/ts/src/components/Root/Root.d.ts +31 -0
- package/.cache/ts/src/components/ScreenSpinner/ScreenSpinner.d.ts +6 -0
- package/.cache/ts/src/components/Search/Search.d.ts +17 -0
- package/.cache/ts/src/components/SegmentedControl/SegmentedControl.d.ts +17 -0
- package/.cache/ts/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +4 -0
- package/.cache/ts/src/components/Select/Select.d.ts +7 -0
- package/.cache/ts/src/components/SelectMimicry/SelectMimicry.d.ts +14 -0
- package/.cache/ts/src/components/Separator/Separator.d.ts +11 -0
- package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +39 -0
- package/.cache/ts/src/components/SimpleCheckbox/SimpleCheckbox.d.ts +8 -0
- package/.cache/ts/src/components/Slider/Slider.d.ts +5 -0
- package/.cache/ts/src/components/SliderSwitch/SliderSwitch.d.ts +47 -0
- package/.cache/ts/src/components/SliderSwitch/SliderSwitchButton.d.ts +11 -0
- package/.cache/ts/src/components/Snackbar/Snackbar.d.ts +35 -0
- package/.cache/ts/src/components/Spacing/Spacing.d.ts +18 -0
- package/.cache/ts/src/components/Spinner/Spinner.d.ts +7 -0
- package/.cache/ts/src/components/SplitCol/SplitCol.d.ts +22 -0
- package/.cache/ts/src/components/SplitLayout/SplitLayout.d.ts +15 -0
- package/.cache/ts/src/components/SubnavigationBar/SubnavigationBar.d.ts +7 -0
- package/.cache/ts/src/components/SubnavigationButton/SubnavigationButton.d.ts +21 -0
- package/.cache/ts/src/components/Switch/Switch.d.ts +7 -0
- package/.cache/ts/src/components/Tabbar/Tabbar.d.ts +11 -0
- package/.cache/ts/src/components/TabbarItem/TabbarItem.d.ts +21 -0
- package/.cache/ts/src/components/Tabs/Tabs.d.ts +10 -0
- package/.cache/ts/src/components/TabsItem/TabsItem.d.ts +8 -0
- package/.cache/ts/src/components/Tappable/Tappable.d.ts +42 -0
- package/.cache/ts/src/components/TextTooltip/TextTooltip.d.ts +14 -0
- package/.cache/ts/src/components/Textarea/Textarea.d.ts +11 -0
- package/.cache/ts/src/components/Tooltip/Tooltip.d.ts +55 -0
- package/.cache/ts/src/components/Tooltip/TooltipContainer.d.ts +5 -0
- package/.cache/ts/src/components/Touch/Touch.d.ts +49 -0
- package/.cache/ts/src/components/Touch/TouchContext.d.ts +7 -0
- package/.cache/ts/src/components/Typography/Caption/Caption.d.ts +14 -0
- package/.cache/ts/src/components/Typography/Headline/Headline.d.ts +8 -0
- package/.cache/ts/src/components/Typography/Subhead/Subhead.d.ts +13 -0
- package/.cache/ts/src/components/Typography/Text/Text.d.ts +8 -0
- package/.cache/ts/src/components/Typography/Title/Title.d.ts +14 -0
- package/.cache/ts/src/components/UsersStack/UsersStack.d.ts +23 -0
- package/.cache/ts/src/components/UsersStack/masks.d.ts +1 -0
- package/.cache/ts/src/components/View/View.d.ts +80 -0
- package/.cache/ts/src/components/View/ViewInfinite.d.ts +66 -0
- package/.cache/ts/src/components/View/utils.d.ts +2 -0
- package/.cache/ts/src/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +12 -0
- package/.cache/ts/src/components/WriteBar/WriteBar.d.ts +23 -0
- package/.cache/ts/src/components/WriteBarIcon/WriteBarIcon.d.ts +18 -0
- package/.cache/ts/src/helpers/avatar.d.ts +5 -0
- package/.cache/ts/src/helpers/getClassName.d.ts +2 -0
- package/.cache/ts/src/helpers/getScheme.d.ts +8 -0
- package/.cache/ts/src/helpers/math.d.ts +5 -0
- package/.cache/ts/src/helpers/scheme.d.ts +34 -0
- package/.cache/ts/src/helpers/typography.d.ts +1 -0
- package/.cache/ts/src/hoc/withAdaptivity.d.ts +13 -0
- package/.cache/ts/src/hoc/withContext.d.ts +2 -0
- package/.cache/ts/src/hoc/withInsets.d.ts +3 -0
- package/.cache/ts/src/hoc/withPlatform.d.ts +3 -0
- package/.cache/ts/src/hooks/useAdaptivity.d.ts +3 -0
- package/.cache/ts/src/hooks/useAppearance.d.ts +1 -0
- package/.cache/ts/src/hooks/useBooleanState.d.ts +6 -0
- package/.cache/ts/src/hooks/useBrowserInfo.d.ts +2 -0
- package/.cache/ts/src/hooks/useCalendar.d.ts +18 -0
- package/.cache/ts/src/hooks/useDateInput.d.ts +30 -0
- package/.cache/ts/src/hooks/useEffectDev.d.ts +2 -0
- package/.cache/ts/src/hooks/useEnsuredControl.d.ts +6 -0
- package/.cache/ts/src/hooks/useEventListener.d.ts +7 -0
- package/.cache/ts/src/hooks/useExternRef.d.ts +2 -0
- package/.cache/ts/src/hooks/useFocusVisible.d.ts +6 -0
- package/.cache/ts/src/hooks/useGlobalEventListener.d.ts +2 -0
- package/.cache/ts/src/hooks/useInsets.d.ts +8 -0
- package/.cache/ts/src/hooks/useKeyboard.d.ts +11 -0
- package/.cache/ts/src/hooks/useKeyboardInputTracker.d.ts +3 -0
- package/.cache/ts/src/hooks/useObjectMemo.d.ts +2 -0
- package/.cache/ts/src/hooks/useOrientationChange.d.ts +7 -0
- package/.cache/ts/src/hooks/usePagination.d.ts +34 -0
- package/.cache/ts/src/hooks/usePatchChildrenRef.d.ts +6 -0
- package/.cache/ts/src/hooks/usePlatform.d.ts +2 -0
- package/.cache/ts/src/hooks/useTimeout.d.ts +4 -0
- package/.cache/ts/src/hooks/useWaitTransitionFinish.d.ts +3 -0
- package/.cache/ts/src/index.d.ts +289 -0
- package/.cache/ts/src/lib/SSR.d.ts +14 -0
- package/.cache/ts/src/lib/accessibility.d.ts +10 -0
- package/.cache/ts/src/lib/animate.d.ts +15 -0
- package/.cache/ts/src/lib/browser.d.ts +11 -0
- package/.cache/ts/src/lib/calendar.d.ts +14 -0
- package/.cache/ts/src/lib/callMultiple.d.ts +1 -0
- package/.cache/ts/src/lib/classNames.d.ts +6 -0
- package/.cache/ts/src/lib/classScopingMode.d.ts +8 -0
- package/.cache/ts/src/lib/dom.d.ts +21 -0
- package/.cache/ts/src/lib/fx.d.ts +5 -0
- package/.cache/ts/src/lib/getNavId.d.ts +6 -0
- package/.cache/ts/src/lib/is.d.ts +1 -0
- package/.cache/ts/src/lib/isRefObject.d.ts +2 -0
- package/.cache/ts/src/lib/jsxRuntime.d.ts +8 -0
- package/.cache/ts/src/lib/offset.d.ts +7 -0
- package/.cache/ts/src/lib/platform.d.ts +19 -0
- package/.cache/ts/src/lib/polyfills.d.ts +6 -0
- package/.cache/ts/src/lib/prefixClass.d.ts +1 -0
- package/.cache/ts/src/lib/removeObjectKeys.d.ts +1 -0
- package/.cache/ts/src/lib/select.d.ts +7 -0
- package/.cache/ts/src/lib/styles.d.ts +1 -0
- package/.cache/ts/src/lib/supportEvents.d.ts +9 -0
- package/.cache/ts/src/lib/taptic.d.ts +2 -0
- package/.cache/ts/src/lib/testing.d.ts +1 -0
- package/.cache/ts/src/lib/touch.d.ts +9 -0
- package/.cache/ts/src/lib/useIsomorphicLayoutEffect.d.ts +2 -0
- package/.cache/ts/src/lib/utils.d.ts +16 -0
- package/.cache/ts/src/lib/warnOnce.d.ts +1 -0
- package/.cache/ts/src/testing/setup.d.ts +1 -0
- package/.cache/ts/src/testing/utils.d.ts +30 -0
- package/.cache/ts/src/tokenized/index.d.ts +24 -0
- package/.cache/ts/src/types.d.ts +34 -0
- package/.cache/ts/src/unstable/index.d.ts +17 -0
- package/.codesandbox/ci.json +5 -0
- package/.editorconfig +14 -0
- package/.eslintignore +6 -0
- package/.eslintrc.json +145 -0
- package/.gitattributes +1 -0
- package/.gitmodules +0 -0
- package/.prettierignore +14 -0
- package/.prettierrc.json +1 -0
- package/.stylelintignore +2 -0
- package/CONTRIBUTING.md +3 -2
- package/CSS_GUIDE.md +145 -0
- package/TESTING.md +58 -0
- package/babel.cjs.config.js +15 -0
- package/babel.config.js +72 -0
- package/dist/cjs/components/ActionSheet/ActionSheet.js +4 -7
- package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +3 -5
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cjs/components/Alert/Alert.js +5 -8
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/Button/Button.js +4 -8
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/CalendarDays/CalendarDays.js +2 -2
- package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.js +2 -5
- package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cjs/components/Chip/Chip.js +2 -4
- package/dist/cjs/components/Chip/Chip.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +2 -4
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/ContentCard/ContentCard.js +5 -7
- package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cjs/components/Counter/Counter.js +3 -3
- package/dist/cjs/components/Counter/Counter.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +17 -9
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +2 -4
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cjs/components/Footer/Footer.js +2 -4
- package/dist/cjs/components/Footer/Footer.js.map +1 -1
- package/dist/cjs/components/FormItem/FormItem.js +2 -4
- package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
- package/dist/cjs/components/FormStatus/FormStatus.js +3 -8
- package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/cjs/components/Group/Group.js +3 -5
- package/dist/cjs/components/Group/Group.js.map +1 -1
- package/dist/cjs/components/Header/Header.js +9 -18
- package/dist/cjs/components/Header/Header.js.map +1 -1
- package/dist/cjs/components/HorizontalCell/HorizontalCell.js +4 -7
- package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.js +5 -5
- package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +2 -4
- package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cjs/components/PromoBanner/PromoBanner.js +3 -7
- package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cjs/components/Radio/Radio.js +2 -5
- package/dist/cjs/components/Radio/Radio.js.map +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +3 -4
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cjs/components/Typography/Caption/Caption.d.ts +8 -4
- package/dist/cjs/components/Typography/Caption/Caption.js +12 -14
- package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +3 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.d.ts +3 -1
- package/dist/cjs/components/Typography/Title/Title.js +3 -1
- package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
- package/dist/cjs/components/UsersStack/UsersStack.js +3 -4
- package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cjs/helpers/typography.d.ts +1 -0
- package/dist/cjs/helpers/typography.js +25 -0
- package/dist/cjs/helpers/typography.js.map +1 -0
- package/dist/cjs/hooks/useOrientationChange.d.ts +7 -0
- package/dist/cjs/hooks/useOrientationChange.js +56 -0
- package/dist/cjs/hooks/useOrientationChange.js.map +1 -0
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/tokenized/index.d.ts +2 -0
- package/dist/cjs/tokenized/index.js +8 -0
- package/dist/cjs/tokenized/index.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js +2 -5
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.js +2 -4
- package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/components/Alert/Alert.js +3 -6
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/Button/Button.js +3 -7
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.js +1 -1
- package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.js +1 -4
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Chip/Chip.js +1 -3
- package/dist/components/Chip/Chip.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js +1 -3
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.js +3 -5
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/Counter/Counter.js +2 -2
- package/dist/components/Counter/Counter.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +16 -8
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js +1 -3
- package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/components/Footer/Footer.js +1 -3
- package/dist/components/Footer/Footer.js.map +1 -1
- package/dist/components/FormItem/FormItem.js +1 -3
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormStatus/FormStatus.js +2 -7
- package/dist/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/components/Group/Group.js +2 -4
- package/dist/components/Group/Group.js.map +1 -1
- package/dist/components/Header/Header.js +6 -15
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.js +2 -5
- package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.js +4 -5
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js +1 -3
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/components/PromoBanner/PromoBanner.js +1 -5
- package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/components/Radio/Radio.js +1 -4
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js +2 -3
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/Typography/Caption/Caption.d.ts +8 -4
- package/dist/components/Typography/Caption/Caption.js +10 -14
- package/dist/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/components/Typography/Subhead/Subhead.d.ts +3 -1
- package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/components/Typography/Title/Title.d.ts +3 -1
- package/dist/components/Typography/Title/Title.js +2 -1
- package/dist/components/Typography/Title/Title.js.map +1 -1
- package/dist/components/UsersStack/UsersStack.js +2 -3
- package/dist/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/components.css +2 -2
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -5
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +2 -4
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js +3 -6
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/Button/Button.js +3 -7
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.css +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.js +1 -4
- package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cssm/components/Chip/Chip.js +1 -3
- package/dist/cssm/components/Chip/Chip.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +1 -3
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.js +3 -5
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.js +2 -2
- package/dist/cssm/components/Counter/Counter.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +16 -8
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -3
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cssm/components/Footer/Footer.js +1 -3
- package/dist/cssm/components/Footer/Footer.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.js +1 -3
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormStatus/FormStatus.js +2 -7
- package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/cssm/components/Group/Group.js +2 -4
- package/dist/cssm/components/Group/Group.js.map +1 -1
- package/dist/cssm/components/Header/Header.js +6 -15
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js +2 -5
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js +4 -5
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +1 -3
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -5
- package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cssm/components/Radio/Radio.js +1 -4
- package/dist/cssm/components/Radio/Radio.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +2 -3
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.css +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.d.ts +8 -4
- package/dist/cssm/components/Typography/Caption/Caption.js +10 -14
- package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.d.ts +3 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.d.ts +3 -1
- package/dist/cssm/components/Typography/Title/Title.js +2 -1
- package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.js +2 -3
- package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cssm/helpers/typography.d.ts +1 -0
- package/dist/cssm/helpers/typography.js +18 -0
- package/dist/cssm/helpers/typography.js.map +1 -0
- package/dist/cssm/hooks/useOrientationChange.d.ts +7 -0
- package/dist/cssm/hooks/useOrientationChange.js +42 -0
- package/dist/cssm/hooks/useOrientationChange.js.map +1 -0
- package/dist/cssm/index.d.ts +1 -1
- package/dist/cssm/index.js +1 -1
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/styles/components.css +2 -2
- package/dist/cssm/tokenized/index.d.ts +2 -0
- package/dist/cssm/tokenized/index.js +1 -0
- package/dist/cssm/tokenized/index.js.map +1 -1
- package/dist/helpers/typography.d.ts +1 -0
- package/dist/helpers/typography.js +18 -0
- package/dist/helpers/typography.js.map +1 -0
- package/dist/hooks/useOrientationChange.d.ts +7 -0
- package/dist/hooks/useOrientationChange.js +42 -0
- package/dist/hooks/useOrientationChange.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tokenized/index.d.ts +2 -0
- package/dist/tokenized/index.js +1 -0
- package/dist/tokenized/index.js.map +1 -1
- package/dist/vkui.css +2 -2
- package/dist/vkui.css.map +1 -1
- package/jest.unit.config.js +14 -0
- package/package.json +6 -9
- package/src/appearance/constants.ts +1 -0
- package/src/components/ActionSheet/ActionSheet.css +145 -0
- package/src/components/ActionSheet/ActionSheet.tsx +158 -0
- package/src/components/ActionSheet/ActionSheetContext.ts +18 -0
- package/src/components/ActionSheet/ActionSheetDropdown.tsx +33 -0
- package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +97 -0
- package/src/components/ActionSheet/Readme.md +256 -0
- package/src/components/ActionSheet/types.ts +16 -0
- package/src/components/ActionSheetItem/ActionSheetItem.css +306 -0
- package/src/components/ActionSheetItem/ActionSheetItem.tsx +182 -0
- package/src/components/ActionSheetItem/Readme.md +2 -0
- package/src/components/AdaptivityProvider/AdaptivityContext.tsx +62 -0
- package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +138 -0
- package/src/components/AdaptivityProvider/Readme.md +3 -0
- package/src/components/Alert/Alert.css +297 -0
- package/src/components/Alert/Alert.tsx +288 -0
- package/src/components/Alert/Readme.md +133 -0
- package/src/components/AppRoot/AppRoot.css +20 -0
- package/src/components/AppRoot/AppRoot.tsx +205 -0
- package/src/components/AppRoot/AppRootContext.ts +13 -0
- package/src/components/AppRoot/AppRootPortal.tsx +24 -0
- package/src/components/AppRoot/Readme.md +9 -0
- package/src/components/AppRoot/ScrollContext.ts +44 -0
- package/src/components/AppearanceProvider/AppearanceProvider.tsx +61 -0
- package/src/components/AppearanceProvider/AppearanceProviderContext.tsx +7 -0
- package/src/components/Avatar/Avatar.css +192 -0
- package/src/components/Avatar/Avatar.tsx +183 -0
- package/src/components/Avatar/Readme.md +838 -0
- package/src/components/Badge/Badge.css +21 -0
- package/src/components/Badge/Badge.tsx +27 -0
- package/src/components/Badge/Readme.md +55 -0
- package/src/components/Banner/Banner.css +154 -0
- package/src/components/Banner/Banner.tsx +220 -0
- package/src/components/Banner/Readme.md +215 -0
- package/src/components/Button/Button.css +594 -0
- package/src/components/Button/Button.tsx +225 -0
- package/src/components/Button/Readme.md +186 -0
- package/src/components/ButtonGroup/ButtonGroup.css +52 -0
- package/src/components/ButtonGroup/ButtonGroup.tsx +48 -0
- package/src/components/ButtonGroup/Readme.md +311 -0
- package/src/components/Calendar/Calendar.css +31 -0
- package/src/components/Calendar/Calendar.tsx +184 -0
- package/src/components/Calendar/Readme.md +124 -0
- package/src/components/CalendarDay/CalendarDay.css +85 -0
- package/src/components/CalendarDay/CalendarDay.tsx +114 -0
- package/src/components/CalendarDays/CalendarDays.css +31 -0
- package/src/components/CalendarDays/CalendarDays.tsx +131 -0
- package/src/components/CalendarHeader/CalendarHeader.css +50 -0
- package/src/components/CalendarHeader/CalendarHeader.tsx +167 -0
- package/src/components/CalendarRange/CalendarRange.css +27 -0
- package/src/components/CalendarRange/CalendarRange.tsx +278 -0
- package/src/components/CalendarRange/Readme.md +85 -0
- package/src/components/CalendarTime/CalendarTime.css +18 -0
- package/src/components/CalendarTime/CalendarTime.tsx +88 -0
- package/src/components/Card/Card.css +83 -0
- package/src/components/Card/Card.tsx +31 -0
- package/src/components/Card/Readme.md +39 -0
- package/src/components/CardGrid/CardGrid.css +82 -0
- package/src/components/CardGrid/CardGrid.tsx +41 -0
- package/src/components/CardGrid/Readme.md +41 -0
- package/src/components/CardScroll/CardScroll.css +47 -0
- package/src/components/CardScroll/CardScroll.tsx +116 -0
- package/src/components/CardScroll/Readme.md +62 -0
- package/src/components/Cell/Cell.css +56 -0
- package/src/components/Cell/Cell.tsx +204 -0
- package/src/components/Cell/CellCheckbox/CellCheckbox.css +17 -0
- package/src/components/Cell/CellCheckbox/CellCheckbox.tsx +41 -0
- package/src/components/Cell/CellDragger/CellDragger.css +4 -0
- package/src/components/Cell/CellDragger/CellDragger.tsx +37 -0
- package/src/components/Cell/Readme.md +163 -0
- package/src/components/Cell/useDraggable.tsx +126 -0
- package/src/components/CellButton/CellButton.css +46 -0
- package/src/components/CellButton/CellButton.tsx +35 -0
- package/src/components/CellButton/Readme.md +53 -0
- package/src/components/Checkbox/Checkbox.css +127 -0
- package/src/components/Checkbox/Checkbox.tsx +102 -0
- package/src/components/Checkbox/Readme.md +20 -0
- package/src/components/Chip/Chip.css +56 -0
- package/src/components/Chip/Chip.tsx +69 -0
- package/src/components/Chip/Readme.md +81 -0
- package/src/components/ChipsInput/ChipsInput.css +72 -0
- package/src/components/ChipsInput/ChipsInput.tsx +238 -0
- package/src/components/ChipsInput/Readme.md +94 -0
- package/src/components/ChipsInput/useChipsInput.ts +90 -0
- package/src/components/ChipsSelect/ChipsSelect.css +23 -0
- package/src/components/ChipsSelect/ChipsSelect.tsx +452 -0
- package/src/components/ChipsSelect/Readme.md +115 -0
- package/src/components/ChipsSelect/useChipsSelect.ts +72 -0
- package/src/components/ClickPopper/ClickPopper.tsx +86 -0
- package/src/components/ConfigProvider/ConfigProvider.tsx +144 -0
- package/src/components/ConfigProvider/ConfigProviderContext.tsx +48 -0
- package/src/components/ConfigProvider/Readme.md +1 -0
- package/src/components/ContentCard/ContentCard.css +39 -0
- package/src/components/ContentCard/ContentCard.tsx +152 -0
- package/src/components/ContentCard/Readme.md +65 -0
- package/src/components/Counter/Counter.css +161 -0
- package/src/components/Counter/Counter.tsx +76 -0
- package/src/components/Counter/Readme.md +114 -0
- package/src/components/CustomScrollView/CustomScrollView.css +62 -0
- package/src/components/CustomScrollView/CustomScrollView.tsx +168 -0
- package/src/components/CustomSelect/CustomSelect.css +24 -0
- package/src/components/CustomSelect/CustomSelect.tsx +778 -0
- package/src/components/CustomSelect/Readme.md +248 -0
- package/src/components/CustomSelectDropdown/CustomSelectDropdown.css +38 -0
- package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +75 -0
- package/src/components/CustomSelectOption/CustomSelectOption.css +63 -0
- package/src/components/CustomSelectOption/CustomSelectOption.tsx +88 -0
- package/src/components/CustomSelectOption/Readme.md +33 -0
- package/src/components/DateInput/DateInput.css +20 -0
- package/src/components/DateInput/DateInput.tsx +317 -0
- package/src/components/DateInput/Readme.md +116 -0
- package/src/components/DatePicker/DatePicker.css +30 -0
- package/src/components/DatePicker/DatePicker.tsx +238 -0
- package/src/components/DatePicker/Readme.md +40 -0
- package/src/components/DateRangeInput/DateRangeInput.css +16 -0
- package/src/components/DateRangeInput/DateRangeInput.tsx +350 -0
- package/src/components/DateRangeInput/Readme.md +96 -0
- package/src/components/Div/Div.css +7 -0
- package/src/components/Div/Div.tsx +26 -0
- package/src/components/Div/Readme.md +17 -0
- package/src/components/Dropdown/Dropdown.css +19 -0
- package/src/components/Dropdown/Dropdown.tsx +42 -0
- package/src/components/Dropdown/Readme.md +49 -0
- package/src/components/DropdownIcon/DropdownIcon.css +3 -0
- package/src/components/DropdownIcon/DropdownIcon.tsx +18 -0
- package/src/components/Epic/Epic.css +4 -0
- package/src/components/Epic/Epic.tsx +61 -0
- package/src/components/Epic/Readme.md +240 -0
- package/src/components/Epic/ScrollSaver.tsx +23 -0
- package/src/components/File/File.css +6 -0
- package/src/components/File/File.tsx +74 -0
- package/src/components/File/Readme.md +20 -0
- package/src/components/FixedLayout/FixedLayout.css +27 -0
- package/src/components/FixedLayout/FixedLayout.tsx +71 -0
- package/src/components/FixedLayout/Readme.md +117 -0
- package/src/components/FocusTrap/FocusTrap.tsx +144 -0
- package/src/components/FocusVisible/FocusVisible.css +72 -0
- package/src/components/FocusVisible/FocusVisible.tsx +18 -0
- package/src/components/Footer/Footer.css +8 -0
- package/src/components/Footer/Footer.tsx +17 -0
- package/src/components/Footer/Readme.md +23 -0
- package/src/components/FormField/FormField.css +152 -0
- package/src/components/FormField/FormField.tsx +76 -0
- package/src/components/FormField/Readme.md +42 -0
- package/src/components/FormItem/FormItem.css +83 -0
- package/src/components/FormItem/FormItem.tsx +85 -0
- package/src/components/FormItem/Readme.md +183 -0
- package/src/components/FormLayout/FormLayout.css +16 -0
- package/src/components/FormLayout/FormLayout.tsx +39 -0
- package/src/components/FormLayout/Readme.md +2 -0
- package/src/components/FormLayoutGroup/FormLayoutGroup.css +22 -0
- package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +71 -0
- package/src/components/FormLayoutGroup/Readme.md +63 -0
- package/src/components/FormStatus/FormStatus.css +34 -0
- package/src/components/FormStatus/FormStatus.tsx +45 -0
- package/src/components/FormStatus/Readme.md +23 -0
- package/src/components/Gallery/Gallery.css +71 -0
- package/src/components/Gallery/Gallery.tsx +562 -0
- package/src/components/Gallery/Readme.md +99 -0
- package/src/components/Gradient/Gradient.css +83 -0
- package/src/components/Gradient/Gradient.tsx +29 -0
- package/src/components/Gradient/Readme.md +55 -0
- package/src/components/GridAvatar/GridAvatar.css +37 -0
- package/src/components/GridAvatar/GridAvatar.tsx +53 -0
- package/src/components/GridAvatar/Readme.md +24 -0
- package/src/components/Group/Group.css +86 -0
- package/src/components/Group/Group.tsx +94 -0
- package/src/components/Group/Readme.md +156 -0
- package/src/components/Header/Header.css +152 -0
- package/src/components/Header/Header.tsx +171 -0
- package/src/components/Header/Readme.md +114 -0
- package/src/components/HorizontalCell/HorizontalCell.css +95 -0
- package/src/components/HorizontalCell/HorizontalCell.tsx +86 -0
- package/src/components/HorizontalCell/Readme.md +236 -0
- package/src/components/HorizontalScroll/HorizontalScroll.css +31 -0
- package/src/components/HorizontalScroll/HorizontalScroll.tsx +217 -0
- package/src/components/HorizontalScroll/HorizontalScrollArrow.css +69 -0
- package/src/components/HorizontalScroll/HorizontalScrollArrow.tsx +35 -0
- package/src/components/HorizontalScroll/Readme.md +67 -0
- package/src/components/HoverPopper/HoverPopper.tsx +102 -0
- package/src/components/IconButton/IconButton.css +93 -0
- package/src/components/IconButton/IconButton.tsx +57 -0
- package/src/components/InfoRow/InfoRow.css +14 -0
- package/src/components/InfoRow/InfoRow.tsx +37 -0
- package/src/components/InfoRow/Readme.md +27 -0
- package/src/components/InitialsAvatar/InitialsAvatar.css +55 -0
- package/src/components/InitialsAvatar/InitialsAvatar.tsx +95 -0
- package/src/components/InitialsAvatar/Readme.md +20 -0
- package/src/components/Input/Input.css +52 -0
- package/src/components/Input/Input.tsx +54 -0
- package/src/components/Input/Readme.md +46 -0
- package/src/components/InputLike/InputLike.css +25 -0
- package/src/components/InputLike/InputLike.tsx +72 -0
- package/src/components/InputLike/InputLikeDivider.css +4 -0
- package/src/components/InputLike/InputLikeDivider.tsx +12 -0
- package/src/components/Link/Link.css +18 -0
- package/src/components/Link/Link.tsx +27 -0
- package/src/components/Link/Readme.md +8 -0
- package/src/components/List/List.css +2 -0
- package/src/components/List/List.tsx +31 -0
- package/src/components/List/ListContext.ts +6 -0
- package/src/components/List/Readme.md +22 -0
- package/src/components/LocaleProviderContext/LocaleProviderContext.tsx +5 -0
- package/src/components/MiniInfoCell/MiniInfoCell.css +67 -0
- package/src/components/MiniInfoCell/MiniInfoCell.tsx +94 -0
- package/src/components/MiniInfoCell/Readme.md +150 -0
- package/src/components/ModalCard/ModalCard.css +77 -0
- package/src/components/ModalCard/ModalCard.tsx +93 -0
- package/src/components/ModalCard/Readme.md +9 -0
- package/src/components/ModalCardBase/ModalCardBase.css +94 -0
- package/src/components/ModalCardBase/ModalCardBase.tsx +141 -0
- package/src/components/ModalCardBase/Readme.md +38 -0
- package/src/components/ModalDismissButton/ModalDismissButton.css +37 -0
- package/src/components/ModalDismissButton/ModalDismissButton.tsx +32 -0
- package/src/components/ModalDismissButton/Readme.md +53 -0
- package/src/components/ModalPage/ModalPage.css +146 -0
- package/src/components/ModalPage/ModalPage.tsx +131 -0
- package/src/components/ModalPage/Readme.md +9 -0
- package/src/components/ModalPageHeader/ModalPageHeader.css +24 -0
- package/src/components/ModalPageHeader/ModalPageHeader.tsx +57 -0
- package/src/components/ModalPageHeader/Readme.md +46 -0
- package/src/components/ModalRoot/ModalRoot.css +67 -0
- package/src/components/ModalRoot/ModalRoot.tsx +816 -0
- package/src/components/ModalRoot/ModalRootAdaptive.tsx +42 -0
- package/src/components/ModalRoot/ModalRootContext.tsx +51 -0
- package/src/components/ModalRoot/ModalRootDesktop.tsx +261 -0
- package/src/components/ModalRoot/Readme.md +662 -0
- package/src/components/ModalRoot/constants.ts +4 -0
- package/src/components/ModalRoot/types.ts +53 -0
- package/src/components/ModalRoot/useModalManager.tsx +203 -0
- package/src/components/ModalRoot/withModalRootContext.tsx +19 -0
- package/src/components/NativeSelect/NativeSelect.tsx +113 -0
- package/src/components/NativeSelect/Readme.md +17 -0
- package/src/components/NavTransitionContext/NavTransitionContext.tsx +24 -0
- package/src/components/Pagination/Pagination.css +62 -0
- package/src/components/Pagination/Pagination.tsx +196 -0
- package/src/components/Pagination/Readme.md +110 -0
- package/src/components/Panel/Panel.css +116 -0
- package/src/components/Panel/Panel.tsx +58 -0
- package/src/components/Panel/Readme.md +97 -0
- package/src/components/PanelHeader/PanelHeader.css +271 -0
- package/src/components/PanelHeader/PanelHeader.tsx +142 -0
- package/src/components/PanelHeader/Readme.md +244 -0
- package/src/components/PanelHeaderBack/PanelHeaderBack.css +7 -0
- package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +60 -0
- package/src/components/PanelHeaderBack/Readme.md +9 -0
- package/src/components/PanelHeaderButton/PanelHeaderButton.css +102 -0
- package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +109 -0
- package/src/components/PanelHeaderButton/Readme.md +47 -0
- package/src/components/PanelHeaderClose/PanelHeaderClose.tsx +35 -0
- package/src/components/PanelHeaderClose/Readme.md +9 -0
- package/src/components/PanelHeaderContent/PanelHeaderContent.css +107 -0
- package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +105 -0
- package/src/components/PanelHeaderContent/Readme.md +33 -0
- package/src/components/PanelHeaderContext/PanelHeaderContext.css +143 -0
- package/src/components/PanelHeaderContext/PanelHeaderContext.tsx +85 -0
- package/src/components/PanelHeaderContext/Readme.md +110 -0
- package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +49 -0
- package/src/components/PanelHeaderEdit/Readme.md +1 -0
- package/src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx +37 -0
- package/src/components/PanelHeaderSubmit/Readme.md +13 -0
- package/src/components/PanelSpinner/PanelSpinner.tsx +21 -0
- package/src/components/PanelSpinner/Readme.md +15 -0
- package/src/components/Placeholder/Placeholder.css +50 -0
- package/src/components/Placeholder/Placeholder.tsx +70 -0
- package/src/components/Placeholder/Readme.md +104 -0
- package/src/components/PopoutRoot/PopoutRoot.css +36 -0
- package/src/components/PopoutRoot/PopoutRoot.tsx +72 -0
- package/src/components/PopoutRoot/Readme.md +50 -0
- package/src/components/PopoutWrapper/PopoutWrapper.css +109 -0
- package/src/components/PopoutWrapper/PopoutWrapper.tsx +77 -0
- package/src/components/PopoutWrapper/Readme.md +12 -0
- package/src/components/Popper/Popper.css +39 -0
- package/src/components/Popper/Popper.tsx +231 -0
- package/src/components/Popper/Readme.md +33 -0
- package/src/components/Progress/Progress.css +12 -0
- package/src/components/Progress/Progress.tsx +49 -0
- package/src/components/Progress/Readme.md +14 -0
- package/src/components/PromoBanner/PromoBanner.css +55 -0
- package/src/components/PromoBanner/PromoBanner.tsx +135 -0
- package/src/components/PromoBanner/Readme.md +25 -0
- package/src/components/PullToRefresh/PullToRefresh.css +98 -0
- package/src/components/PullToRefresh/PullToRefresh.tsx +353 -0
- package/src/components/PullToRefresh/PullToRefreshSpinner.tsx +78 -0
- package/src/components/PullToRefresh/Readme.md +71 -0
- package/src/components/Radio/Radio.css +187 -0
- package/src/components/Radio/Radio.tsx +82 -0
- package/src/components/Radio/Readme.md +29 -0
- package/src/components/RadioGroup/RadioGroup.css +12 -0
- package/src/components/RadioGroup/RadioGroup.tsx +29 -0
- package/src/components/RadioGroup/Readme.md +56 -0
- package/src/components/RangeSlider/RangeSlider.tsx +54 -0
- package/src/components/RangeSlider/Readme.md +32 -0
- package/src/components/RangeSlider/UniversalSlider.tsx +162 -0
- package/src/components/Removable/Removable.css +125 -0
- package/src/components/Removable/Removable.tsx +176 -0
- package/src/components/RichCell/Readme.md +65 -0
- package/src/components/RichCell/RichCell.css +115 -0
- package/src/components/RichCell/RichCell.tsx +104 -0
- package/src/components/RichTooltip/Readme.md +59 -0
- package/src/components/RichTooltip/RichTooltip.css +10 -0
- package/src/components/RichTooltip/RichTooltip.tsx +32 -0
- package/src/components/Root/Readme.md +36 -0
- package/src/components/Root/Root.css +184 -0
- package/src/components/Root/Root.tsx +209 -0
- package/src/components/ScreenSpinner/Readme.md +43 -0
- package/src/components/ScreenSpinner/ScreenSpinner.css +31 -0
- package/src/components/ScreenSpinner/ScreenSpinner.tsx +37 -0
- package/src/components/Search/Readme.md +235 -0
- package/src/components/Search/Search.css +359 -0
- package/src/components/Search/Search.tsx +196 -0
- package/src/components/SegmentedControl/Readme.md +94 -0
- package/src/components/SegmentedControl/SegmentedControl.css +42 -0
- package/src/components/SegmentedControl/SegmentedControl.tsx +105 -0
- package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +30 -0
- package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +42 -0
- package/src/components/Select/Readme.md +27 -0
- package/src/components/Select/Select.css +64 -0
- package/src/components/Select/Select.tsx +39 -0
- package/src/components/SelectMimicry/Readme.md +87 -0
- package/src/components/SelectMimicry/SelectMimicry.css +10 -0
- package/src/components/SelectMimicry/SelectMimicry.tsx +94 -0
- package/src/components/Separator/Readme.md +23 -0
- package/src/components/Separator/Separator.css +48 -0
- package/src/components/Separator/Separator.tsx +40 -0
- package/src/components/SimpleCell/Readme.md +136 -0
- package/src/components/SimpleCell/SimpleCell.css +258 -0
- package/src/components/SimpleCell/SimpleCell.tsx +132 -0
- package/src/components/SimpleCheckbox/Readme.md +25 -0
- package/src/components/SimpleCheckbox/SimpleCheckbox.css +129 -0
- package/src/components/SimpleCheckbox/SimpleCheckbox.tsx +143 -0
- package/src/components/Slider/Readme.md +83 -0
- package/src/components/Slider/Slider.css +145 -0
- package/src/components/Slider/Slider.tsx +54 -0
- package/src/components/SliderSwitch/Readme.md +27 -0
- package/src/components/SliderSwitch/SliderSwitch.css +87 -0
- package/src/components/SliderSwitch/SliderSwitch.tsx +209 -0
- package/src/components/SliderSwitch/SliderSwitchButton.tsx +53 -0
- package/src/components/Snackbar/Readme.md +145 -0
- package/src/components/Snackbar/Snackbar.css +159 -0
- package/src/components/Snackbar/Snackbar.tsx +254 -0
- package/src/components/Spacing/Readme.md +98 -0
- package/src/components/Spacing/Spacing.css +46 -0
- package/src/components/Spacing/Spacing.tsx +53 -0
- package/src/components/Spinner/Readme.md +11 -0
- package/src/components/Spinner/Spinner.css +33 -0
- package/src/components/Spinner/Spinner.tsx +53 -0
- package/src/components/SplitCol/Readme.md +1 -0
- package/src/components/SplitCol/SplitCol.css +28 -0
- package/src/components/SplitCol/SplitCol.tsx +75 -0
- package/src/components/SplitLayout/Readme.md +154 -0
- package/src/components/SplitLayout/SplitLayout.css +52 -0
- package/src/components/SplitLayout/SplitLayout.tsx +54 -0
- package/src/components/SubnavigationBar/Readme.md +264 -0
- package/src/components/SubnavigationBar/SubnavigationBar.css +32 -0
- package/src/components/SubnavigationBar/SubnavigationBar.tsx +66 -0
- package/src/components/SubnavigationButton/Readme.md +128 -0
- package/src/components/SubnavigationButton/SubnavigationButton.css +103 -0
- package/src/components/SubnavigationButton/SubnavigationButton.tsx +99 -0
- package/src/components/Switch/Readme.md +57 -0
- package/src/components/Switch/Switch.css +198 -0
- package/src/components/Switch/Switch.tsx +56 -0
- package/src/components/Tabbar/Readme.md +7 -0
- package/src/components/Tabbar/Tabbar.css +53 -0
- package/src/components/Tabbar/Tabbar.tsx +50 -0
- package/src/components/TabbarItem/Readme.md +102 -0
- package/src/components/TabbarItem/TabbarItem.css +127 -0
- package/src/components/TabbarItem/TabbarItem.tsx +94 -0
- package/src/components/Tabs/Readme.md +274 -0
- package/src/components/Tabs/Tabs.css +102 -0
- package/src/components/Tabs/Tabs.tsx +57 -0
- package/src/components/TabsItem/Readme.md +0 -0
- package/src/components/TabsItem/TabsItem.css +178 -0
- package/src/components/TabsItem/TabsItem.tsx +62 -0
- package/src/components/Tappable/Tappable.css +141 -0
- package/src/components/Tappable/Tappable.tsx +349 -0
- package/src/components/TextTooltip/Readme.md +11 -0
- package/src/components/TextTooltip/TextTooltip.css +18 -0
- package/src/components/TextTooltip/TextTooltip.tsx +58 -0
- package/src/components/Textarea/Readme.md +24 -0
- package/src/components/Textarea/Textarea.css +39 -0
- package/src/components/Textarea/Textarea.tsx +80 -0
- package/src/components/Tooltip/Readme.md +263 -0
- package/src/components/Tooltip/Tooltip.css +73 -0
- package/src/components/Tooltip/Tooltip.tsx +314 -0
- package/src/components/Tooltip/TooltipContainer.tsx +10 -0
- package/src/components/Touch/Readme.md +116 -0
- package/src/components/Touch/Touch.tsx +285 -0
- package/src/components/Touch/TouchContext.ts +11 -0
- package/src/components/Typography/Caption/Caption.css +97 -0
- package/src/components/Typography/Caption/Caption.tsx +53 -0
- package/src/components/Typography/Caption/Readme.md +29 -0
- package/src/components/Typography/Headline/Headline.css +25 -0
- package/src/components/Typography/Headline/Headline.tsx +36 -0
- package/src/components/Typography/Headline/Readme.md +24 -0
- package/src/components/Typography/Subhead/Readme.md +21 -0
- package/src/components/Typography/Subhead/Subhead.css +43 -0
- package/src/components/Typography/Subhead/Subhead.tsx +54 -0
- package/src/components/Typography/Text/Readme.md +22 -0
- package/src/components/Typography/Text/Text.css +25 -0
- package/src/components/Typography/Text/Text.tsx +49 -0
- package/src/components/Typography/Title/Readme.md +31 -0
- package/src/components/Typography/Title/Title.css +59 -0
- package/src/components/Typography/Title/Title.tsx +64 -0
- package/src/components/UsersStack/Readme.md +94 -0
- package/src/components/UsersStack/UsersStack.css +99 -0
- package/src/components/UsersStack/UsersStack.tsx +102 -0
- package/src/components/UsersStack/masks.tsx +46 -0
- package/src/components/View/Readme.md +98 -0
- package/src/components/View/View.css +125 -0
- package/src/components/View/View.tsx +673 -0
- package/src/components/View/ViewIOS.css +155 -0
- package/src/components/View/ViewInfinite.tsx +731 -0
- package/src/components/View/utils.ts +9 -0
- package/src/components/VisuallyHiddenInput/VisuallyHiddenInput.css +9 -0
- package/src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx +25 -0
- package/src/components/WriteBar/Readme.md +224 -0
- package/src/components/WriteBar/WriteBar.css +106 -0
- package/src/components/WriteBar/WriteBar.tsx +137 -0
- package/src/components/WriteBarIcon/Readme.md +11 -0
- package/src/components/WriteBarIcon/WriteBarIcon.css +75 -0
- package/src/components/WriteBarIcon/WriteBarIcon.tsx +104 -0
- package/src/fonts/VK_Sans_Display_Medium.woff +0 -0
- package/src/fonts/VK_Sans_Display_Medium.woff2 +0 -0
- package/src/fonts/fonts.css +7 -0
- package/src/helpers/avatar.ts +10 -0
- package/src/helpers/getClassName.ts +8 -0
- package/src/helpers/getScheme.ts +27 -0
- package/src/helpers/math.ts +40 -0
- package/src/helpers/scheme.ts +86 -0
- package/src/helpers/typography.ts +24 -0
- package/src/hoc/withAdaptivity.tsx +86 -0
- package/src/hoc/withContext.tsx +14 -0
- package/src/hoc/withInsets.tsx +12 -0
- package/src/hoc/withPlatform.tsx +17 -0
- package/src/hooks/useAdaptivity.ts +12 -0
- package/src/hooks/useAppearance.ts +4 -0
- package/src/hooks/useBooleanState.ts +19 -0
- package/src/hooks/useBrowserInfo.ts +11 -0
- package/src/hooks/useCalendar.ts +78 -0
- package/src/hooks/useDateInput.ts +213 -0
- package/src/hooks/useEffectDev.ts +5 -0
- package/src/hooks/useEnsuredControl.ts +17 -0
- package/src/hooks/useEventListener.ts +62 -0
- package/src/hooks/useExternRef.ts +26 -0
- package/src/hooks/useFocusVisible.ts +31 -0
- package/src/hooks/useGlobalEventListener.ts +35 -0
- package/src/hooks/useInsets.ts +69 -0
- package/src/hooks/useKeyboard.ts +75 -0
- package/src/hooks/useKeyboardInputTracker.ts +64 -0
- package/src/hooks/useObjectMemo.ts +16 -0
- package/src/hooks/useOrientationChange.ts +39 -0
- package/src/hooks/usePagination.ts +96 -0
- package/src/hooks/usePatchChildrenRef.ts +39 -0
- package/src/hooks/usePlatform.ts +10 -0
- package/src/hooks/useTimeout.ts +33 -0
- package/src/hooks/useWaitTransitionFinish.ts +28 -0
- package/src/index.ts +334 -0
- package/src/lib/SSR.tsx +45 -0
- package/src/lib/accessibility.ts +87 -0
- package/src/lib/animate.ts +47 -0
- package/src/lib/browser.ts +44 -0
- package/src/lib/calendar.ts +123 -0
- package/src/lib/callMultiple.ts +4 -0
- package/src/lib/classNames.ts +44 -0
- package/src/lib/classScopingMode.ts +21 -0
- package/src/lib/dom.tsx +45 -0
- package/src/lib/fx.ts +7 -0
- package/src/lib/getNavId.ts +13 -0
- package/src/lib/is.ts +10 -0
- package/src/lib/isRefObject.ts +11 -0
- package/src/lib/jsxRuntime.d.ts +6 -0
- package/src/lib/jsxRuntime.ts +43 -0
- package/src/lib/offset.ts +17 -0
- package/src/lib/platform.ts +36 -0
- package/src/lib/polyfills.ts +96 -0
- package/src/lib/prefixClass.ts +34 -0
- package/src/lib/removeObjectKeys.ts +10 -0
- package/src/lib/select.ts +54 -0
- package/src/lib/styles.ts +12 -0
- package/src/lib/supportEvents.ts +38 -0
- package/src/lib/taptic.ts +9 -0
- package/src/lib/testing.ts +4 -0
- package/src/lib/touch.ts +59 -0
- package/src/lib/useIsomorphicLayoutEffect.ts +7 -0
- package/src/lib/utils.ts +99 -0
- package/src/lib/warnOnce.ts +9 -0
- package/src/styles/animations.css +19 -0
- package/src/styles/bright_light.css +244 -0
- package/src/styles/common.css +39 -0
- package/src/styles/components.css +152 -0
- package/src/styles/constants.css +72 -0
- package/src/styles/space_gray.css +243 -0
- package/src/styles/themes.css +10 -0
- package/src/styles/unstable.css +6 -0
- package/src/styles/vkcom_dark.css +249 -0
- package/src/styles/vkcom_light.css +254 -0
- package/src/testing/setup.ts +1 -0
- package/src/testing/utils.tsx +192 -0
- package/src/tokenized/index.ts +39 -0
- package/src/types.ts +43 -0
- package/src/unstable/index.ts +23 -0
- package/src/vkui.js +1 -0
- package/stylelint.config.js +46 -0
- package/tasks/generate_scheme.js +13 -0
- package/tasks/postcss-check-keyframes.js +36 -0
- package/tasks/postcss-scope-root.js +9 -0
- package/tasks/styleint-atomic.js +57 -0
- package/tokenized/index.d.ts +1 -0
- package/tokenized/package.json +4 -0
- package/tsconfig.dist.json +16 -0
- package/tsconfig.json +38 -0
- package/types/global.d.ts +7 -0
- package/unstable/index.d.ts +1 -0
- package/unstable/package.json +4 -0
- package/webpack.config.js +86 -0
- package/webpack.styles.config.js +67 -0
- package/dist/components.js.tmp +0 -24
- package/dist/default_scheme.js.tmp +0 -24
- package/dist/fonts.js.tmp +0 -24
- package/dist/stable.js.tmp +0 -166
- package/dist/unstable.js.tmp +0 -24
|
@@ -15,7 +15,7 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
|
|
|
15
15
|
|
|
16
16
|
var _Card = require("../Card/Card");
|
|
17
17
|
|
|
18
|
-
var _Caption =
|
|
18
|
+
var _Caption = require("../Typography/Caption/Caption");
|
|
19
19
|
|
|
20
20
|
var _Title = _interopRequireDefault(require("../Typography/Title/Title"));
|
|
21
21
|
|
|
@@ -99,10 +99,10 @@ var ContentCard = function ContentCard(props) {
|
|
|
99
99
|
width: "100%"
|
|
100
100
|
}), (0, _jsxRuntime.createScopedElement)("div", {
|
|
101
101
|
vkuiClass: "ContentCard__body"
|
|
102
|
-
}, (0, _utils.hasReactNode)(subtitle) && (0, _jsxRuntime.createScopedElement)(_Caption.
|
|
102
|
+
}, (0, _utils.hasReactNode)(subtitle) && (0, _jsxRuntime.createScopedElement)(_Caption.Caption, {
|
|
103
103
|
caps: true,
|
|
104
104
|
vkuiClass: "ContentCard__text",
|
|
105
|
-
weight: "
|
|
105
|
+
weight: "1",
|
|
106
106
|
level: "3"
|
|
107
107
|
}, subtitle), (0, _utils.hasReactNode)(header) && (0, _jsxRuntime.createScopedElement)(_Title.default, {
|
|
108
108
|
vkuiClass: "ContentCard__text",
|
|
@@ -111,10 +111,8 @@ var ContentCard = function ContentCard(props) {
|
|
|
111
111
|
}, header), (0, _utils.hasReactNode)(text) && (0, _jsxRuntime.createScopedElement)(_Text.default, {
|
|
112
112
|
vkuiClass: "ContentCard__text",
|
|
113
113
|
weight: "regular"
|
|
114
|
-
}, text), (0, _utils.hasReactNode)(caption) && (0, _jsxRuntime.createScopedElement)(_Caption.
|
|
115
|
-
vkuiClass: "ContentCard__text"
|
|
116
|
-
weight: "regular",
|
|
117
|
-
level: "1"
|
|
114
|
+
}, text), (0, _utils.hasReactNode)(caption) && (0, _jsxRuntime.createScopedElement)(_Caption.Caption, {
|
|
115
|
+
vkuiClass: "ContentCard__text"
|
|
118
116
|
}, caption))));
|
|
119
117
|
};
|
|
120
118
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ContentCard/ContentCard.tsx"],"names":["warn","ContentCard","props","subtitle","header","text","caption","className","mode","style","getRootRef","getRef","maxHeight","image","src","srcSet","alt","width","height","crossOrigin","decoding","loading","referrerPolicy","sizes","useMap","restProps","platform","source","process","env","NODE_ENV","disabled","onClick","href","defaultProps"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ContentCard/ContentCard.tsx"],"names":["warn","ContentCard","props","subtitle","header","text","caption","className","mode","style","getRootRef","getRef","maxHeight","image","src","srcSet","alt","width","height","crossOrigin","decoding","loading","referrerPolicy","sizes","useMap","restProps","platform","source","process","env","NODE_ENV","disabled","onClick","href","defaultProps"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Card, CardProps } from \"../Card/Card\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport Title from \"../Typography/Title/Title\";\nimport Text from \"../Typography/Text/Text\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\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\");\nconst ContentCard: React.FC<ContentCardProps> = (props: ContentCardProps) => {\n const {\n subtitle,\n header,\n text,\n caption,\n // card props\n className,\n mode,\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 } = props;\n const platform = usePlatform();\n\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(getClassName(\"ContentCard\", platform), {\n \"ContentCard--disabled\": restProps.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 caps vkuiClass=\"ContentCard__text\" weight=\"1\" level=\"3\">\n {subtitle}\n </Caption>\n )}\n {hasReactNode(header) && (\n <Title vkuiClass=\"ContentCard__text\" weight=\"3\" level=\"1\">\n {header}\n </Title>\n )}\n {hasReactNode(text) && (\n <Text vkuiClass=\"ContentCard__text\" weight=\"regular\">\n {text}\n </Text>\n )}\n {hasReactNode(caption) && (\n <Caption vkuiClass=\"ContentCard__text\">{caption}</Caption>\n )}\n </div>\n </Tappable>\n </Card>\n );\n};\n\nContentCard.defaultProps = {\n mode: \"shadow\",\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default ContentCard;\n"],"file":"ContentCard.js"}
|
|
@@ -23,7 +23,7 @@ var _getClassName = require("../../helpers/getClassName");
|
|
|
23
23
|
|
|
24
24
|
var _usePlatform = require("../../hooks/usePlatform");
|
|
25
25
|
|
|
26
|
-
var _Caption =
|
|
26
|
+
var _Caption = require("../Typography/Caption/Caption");
|
|
27
27
|
|
|
28
28
|
var _Text = _interopRequireDefault(require("../Typography/Text/Text"));
|
|
29
29
|
|
|
@@ -38,9 +38,9 @@ var CounterTypography = function CounterTypography(_ref) {
|
|
|
38
38
|
var size = _ref.size,
|
|
39
39
|
platform = _ref.platform,
|
|
40
40
|
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
41
|
-
return size === "s" ? (0, _jsxRuntime.createScopedElement)(_Caption.
|
|
41
|
+
return size === "s" ? (0, _jsxRuntime.createScopedElement)(_Caption.Caption, (0, _extends2.default)({
|
|
42
42
|
level: "2",
|
|
43
|
-
weight: platform === _platform.VKCOM ? "
|
|
43
|
+
weight: platform === _platform.VKCOM ? "1" : undefined
|
|
44
44
|
}, restProps)) : (0, _jsxRuntime.createScopedElement)(_Text.default, (0, _extends2.default)({
|
|
45
45
|
weight: "medium"
|
|
46
46
|
}, restProps));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Counter/Counter.tsx"],"names":["CounterTypography","size","platform","restProps","VKCOM","Counter","props","mode","children","React","Children","count","defaultProps","memo"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;AAgBA,IAAMA,iBAAmD,GAAG,SAAtDA,iBAAsD,OAItD;AAAA,MAHJC,IAGI,QAHJA,IAGI;AAAA,MAFJC,QAEI,QAFJA,QAEI;AAAA,MADDC,SACC;AACJ,SAAOF,IAAI,KAAK,GAAT,GACL,qCAAC,gBAAD;AACE,IAAA,KAAK,EAAC,GADR;AAEE,IAAA,MAAM,EAAEC,QAAQ,KAAKE,eAAb,GAAqB,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Counter/Counter.tsx"],"names":["CounterTypography","size","platform","restProps","VKCOM","undefined","Counter","props","mode","children","React","Children","count","defaultProps","memo"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;AAgBA,IAAMA,iBAAmD,GAAG,SAAtDA,iBAAsD,OAItD;AAAA,MAHJC,IAGI,QAHJA,IAGI;AAAA,MAFJC,QAEI,QAFJA,QAEI;AAAA,MADDC,SACC;AACJ,SAAOF,IAAI,KAAK,GAAT,GACL,qCAAC,gBAAD;AACE,IAAA,KAAK,EAAC,GADR;AAEE,IAAA,MAAM,EAAEC,QAAQ,KAAKE,eAAb,GAAqB,GAArB,GAA2BC;AAFrC,KAGMF,SAHN,EADK,GAOL,qCAAC,aAAD;AAAM,IAAA,MAAM,EAAC;AAAb,KAA0BA,SAA1B,EAPF;AASD,CAdD;;AAgBA,IAAMG,OAA+B,GAAG,SAAlCA,OAAkC,CAACC,KAAD,EAAyB;AAC/D,MAAQC,IAAR,GAA+CD,KAA/C,CAAQC,IAAR;AAAA,MAAcP,IAAd,GAA+CM,KAA/C,CAAcN,IAAd;AAAA,MAAoBQ,QAApB,GAA+CF,KAA/C,CAAoBE,QAApB;AAAA,MAAiCN,SAAjC,0CAA+CI,KAA/C;AACA,MAAML,QAAQ,GAAG,+BAAjB;;AAEA,MAAIQ,KAAK,CAACC,QAAN,CAAeC,KAAf,CAAqBH,QAArB,MAAmC,CAAvC,EAA0C;AACxC,WAAO,IAAP;AACD;;AAED,SACE,wEACMN,SADN;AAEE,IAAA,SAAS,EAAE,4BACT,gCAAa,SAAb,EAAwBD,QAAxB,CADS,qBAEGM,IAFH,wBAGKP,IAHL;AAFb,MAQG,yBAAaQ,QAAb,KACC,qCAAC,iBAAD;AACE,IAAA,QAAQ,EAAEP,QADZ;AAEE,IAAA,IAAI,EAAED,IAFR;AAGE,IAAA,SAAS,EAAC;AAHZ,KAKGQ,QALH,CATJ,CADF;AAoBD,CA5BD;;AA8BAH,OAAO,CAACO,YAAR,GAAuB;AACrBL,EAAAA,IAAI,EAAE,WADe;AAErBP,EAAAA,IAAI,EAAE;AAFe,CAAvB,C,CAKA;;4BACeS,KAAK,CAACI,IAAN,CAAWR,OAAX,C","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport Text from \"../Typography/Text/Text\";\nimport { VKCOM } from \"../../lib/platform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { HasComponent, HasPlatform } from \"../../types\";\nimport \"./Counter.css\";\n\nexport interface CounterProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * Тип счетчика. При использовании компонента в качестве значения свойства `after` у `Button` эти значения игнорируются\n */\n mode?: \"secondary\" | \"primary\" | \"prominent\";\n size?: \"s\" | \"m\";\n}\n\ntype CounterTypographyProps = Pick<CounterProps, \"size\"> &\n HasPlatform &\n HasComponent;\n\nconst CounterTypography: React.FC<CounterTypographyProps> = ({\n size,\n platform,\n ...restProps\n}) => {\n return size === \"s\" ? (\n <Caption\n level=\"2\"\n weight={platform === VKCOM ? \"1\" : undefined}\n {...restProps}\n />\n ) : (\n <Text weight=\"medium\" {...restProps} />\n );\n};\n\nconst Counter: React.FC<CounterProps> = (props: CounterProps) => {\n const { mode, size, children, ...restProps } = props;\n const platform = usePlatform();\n\n if (React.Children.count(children) === 0) {\n return null;\n }\n\n return (\n <span\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"Counter\", platform),\n `Counter--${mode}`,\n `Counter--s-${size}`\n )}\n >\n {hasReactNode(children) && (\n <CounterTypography\n platform={platform}\n size={size}\n vkuiClass=\"Counter__in\"\n >\n {children}\n </CounterTypography>\n )}\n </span>\n );\n};\n\nCounter.defaultProps = {\n mode: \"secondary\",\n size: \"m\",\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default React.memo(Counter);\n"],"file":"Counter.js"}
|
|
@@ -49,7 +49,7 @@ var _Input = _interopRequireDefault(require("../Input/Input"));
|
|
|
49
49
|
|
|
50
50
|
var _DropdownIcon = require("../DropdownIcon/DropdownIcon");
|
|
51
51
|
|
|
52
|
-
var _Caption =
|
|
52
|
+
var _Caption = require("../Typography/Caption/Caption");
|
|
53
53
|
|
|
54
54
|
var _warnOnce = require("../../lib/warnOnce");
|
|
55
55
|
|
|
@@ -242,10 +242,12 @@ var CustomSelect = /*#__PURE__*/function (_React$Component) {
|
|
|
242
242
|
|
|
243
243
|
scrollTo && _this.scrollToElement(index);
|
|
244
244
|
|
|
245
|
-
_this.setState(function () {
|
|
246
|
-
return
|
|
247
|
-
focusedOptionIndex
|
|
248
|
-
|
|
245
|
+
_this.setState(function (prevState) {
|
|
246
|
+
return (// Это оптимизация, прежде всего, под `onMouseOver`
|
|
247
|
+
prevState.focusedOptionIndex !== index ? {
|
|
248
|
+
focusedOptionIndex: index
|
|
249
|
+
} : null
|
|
250
|
+
);
|
|
249
251
|
});
|
|
250
252
|
});
|
|
251
253
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "focusOption", function (type) {
|
|
@@ -437,7 +439,15 @@ var CustomSelect = /*#__PURE__*/function (_React$Component) {
|
|
|
437
439
|
disabled: option.disabled,
|
|
438
440
|
onClick: _this.handleOptionClick,
|
|
439
441
|
onMouseDown: _this.handleOptionDown,
|
|
440
|
-
onMouseEnter
|
|
442
|
+
// Используем `onMouseOver` вместо `onMouseEnter`.
|
|
443
|
+
// При параметре `searchable`, обновляется "ребёнок", из-за чего `onMouseEnter` не срабатывает в следующих кейсах:
|
|
444
|
+
// 1. До загрузки выпадающего списка, курсор мышки находится над произвольным элементом этого списка.
|
|
445
|
+
// > Лечение: только увод курсора мыши и возвращении его обратно вызывает событие `onMouseEnter` на этот элемент.
|
|
446
|
+
// 2. Если это тач-устройство.
|
|
447
|
+
// > Лечение: нужно нажать на какой-нибудь произвольный элемент списка, после чего `onMouseEnter` будет работать на соседние элементы,
|
|
448
|
+
// но не на тот, на который нажали в первый раз.
|
|
449
|
+
// Более подробно по ссылке https://github.com/facebook/react/issues/13956#issuecomment-1082055744
|
|
450
|
+
onMouseOver: _this.handleOptionHover
|
|
441
451
|
}));
|
|
442
452
|
});
|
|
443
453
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "selectRef", function (element) {
|
|
@@ -587,9 +597,7 @@ var CustomSelect = /*#__PURE__*/function (_React$Component) {
|
|
|
587
597
|
restProps = (0, _objectWithoutProperties2.default)(_this$props2, _excluded);
|
|
588
598
|
var selected = this.getSelectedItem();
|
|
589
599
|
var label = selected ? selected.label : undefined;
|
|
590
|
-
var defaultDropdownContent = stateOptions !== undefined && stateOptions.length > 0 ? stateOptions.map(this.renderOption) : (0, _jsxRuntime.createScopedElement)(_Caption.
|
|
591
|
-
level: "1",
|
|
592
|
-
weight: "regular",
|
|
600
|
+
var defaultDropdownContent = stateOptions !== undefined && stateOptions.length > 0 ? stateOptions.map(this.renderOption) : (0, _jsxRuntime.createScopedElement)(_Caption.Caption, {
|
|
593
601
|
vkuiClass: "CustomSelect__empty"
|
|
594
602
|
}, this.props.emptyText);
|
|
595
603
|
var resolvedContent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/CustomSelect/CustomSelect.tsx"],"names":["findIndexAfter","options","startIndex","length","findIndex","option","i","disabled","findIndexBefore","endIndex","result","undefined","warn","checkOptionsValueType","Set","map","item","value","size","SelectType","CustomSelect","props","React","createRef","keyboardInput","state","selectedOptionIndex","inputValue","filterFn","filter","setState","opened","focusedOptionIndex","isValidIndex","scrollToElement","onOpen","resetKeyboardInput","onClose","select","index","nativeSelectValue","event","Event","bubbles","selectEl","dispatchEvent","close","open","scrollTo","type","nextIndex","beforeIndex","focusOptionByIndex","e","Array","prototype","indexOf","call","currentTarget","parentNode","children","preventDefault","selectFocused","key","fullInput","optionIndex","label","toLowerCase","includes","scrollBoxRef","current","contains","target","newSelectedOptionIndex","findSelectedIndex","isControlledOutside","onChange","onInputChange","process","env","NODE_ENV","areOptionsShown","focusOption","onKeyboardInput","renderOption","hovered","selected","onClick","handleOptionClick","onMouseDown","handleOptionDown","onMouseEnter","handleOptionHover","element","getRef","placement","popperPlacement","defaultValue","initialValue","Number","center","dropdown","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","prevProps","searchable","stateOptions","name","className","getRootRef","popupDirection","sizeY","platform","style","onBlur","onFocus","emptyText","renderDropdown","fetching","icon","dropdownOffsetDistance","fixDropdownWidth","forceDropdownPortal","restProps","getSelectedItem","defaultDropdownContent","resolvedContent","isPopperDirectionTop","containerRef","onLabelClick","CustomSelect__open","onInputKeyDown","placeholder","handleKeyDownSelect","handleKeyUp","selectRef","onNativeSelectChange","onPlacementChange","resetFocusedOption","Component","defaultFilterFn","selectType","Default"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport SelectMimicry from \"../SelectMimicry/SelectMimicry\";\nimport { debounce, setRef, multiRef } from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport { NativeSelectProps } from \"../NativeSelect/NativeSelect\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport CustomSelectOption, {\n CustomSelectOptionProps,\n} from \"../CustomSelectOption/CustomSelectOption\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { FormFieldProps } from \"../FormField/FormField\";\nimport { HasPlatform } from \"../../types\";\nimport Input from \"../Input/Input\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { defaultFilterFn } from \"../../lib/select\";\nimport { is } from \"../../lib/is\";\nimport { Placement } from \"../Popper/Popper\";\nimport { CustomSelectDropdown } from \"../CustomSelectDropdown/CustomSelectDropdown\";\nimport \"./CustomSelect.css\";\n\nconst findIndexAfter = (\n options: CustomSelectOptionInterface[] = [],\n startIndex = -1\n) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex((option, i) => i > startIndex && !option.disabled);\n};\n\nconst findIndexBefore = (\n options: CustomSelectOptionInterface[] = [],\n endIndex: number = options.length\n) => {\n let result = -1;\n if (options === undefined || endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nconst warn = warnOnce(\"CustomSelect\");\n\nconst checkOptionsValueType = (options: CustomSelectOptionInterface[]) => {\n if (new Set(options.map((item) => typeof item.value)).size > 1) {\n warn(\n \"Some values of your options have different types. CustomSelect onChange always returns a string type.\"\n );\n }\n};\n\ntype SelectValue = React.SelectHTMLAttributes<HTMLSelectElement>[\"value\"];\n\nexport enum SelectType {\n Default = \"default\",\n Plain = \"plain\",\n}\n\nexport interface CustomSelectOptionInterface {\n value: SelectValue;\n label: string;\n disabled?: boolean;\n [index: string]: any;\n}\n\ninterface CustomSelectState {\n inputValue?: string;\n opened?: boolean;\n focusedOptionIndex?: number;\n selectedOptionIndex?: number;\n nativeSelectValue?: SelectValue;\n options?: CustomSelectOptionInterface[];\n popperPlacement?: Placement;\n}\n\nexport interface CustomSelectProps\n extends NativeSelectProps,\n HasPlatform,\n FormFieldProps {\n /**\n * Если `true`, то при клике на селект в нём появится текстовое поле для поиска по `options`. По умолчанию поиск\n * производится по `option.label`.\n */\n searchable?: boolean;\n /**\n * Текст, который будет отображен, если приходит пустой `options`\n */\n emptyText?: string;\n onInputChange?: (\n e: React.ChangeEvent,\n options: CustomSelectOptionInterface[]\n ) => void | CustomSelectOptionInterface[];\n options: Array<{\n value: SelectValue;\n label: string;\n [index: string]: any;\n }>;\n /**\n * Функция для кастомной фильтрации. По-умолчанию поиск производится по option.label.\n */\n filterFn?:\n | false\n | ((\n value: string,\n option: CustomSelectOptionInterface,\n getOptionLabel?: (\n option: Partial<CustomSelectOptionInterface>\n ) => string\n ) => boolean);\n popupDirection?: \"top\" | \"bottom\";\n /**\n * Рендер-проп для кастомного рендера опции.\n * В объекте аргумента приходят [свойства опции](#/CustomSelectOption?id=props)\n */\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В defaultDropdownContent содержится список опций в виде скроллящегося блока.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Если true, то в дропдауне вместо списка опций рисуется спиннер. При переданных renderDropdown и fetching: true,\n * \"победит\" renderDropdown\n */\n fetching?: boolean;\n onClose?: VoidFunction;\n onOpen?: VoidFunction;\n icon?: React.ReactNode;\n dropdownOffsetDistance?: number;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n selectType?: SelectType;\n}\n\ntype MouseEventHandler = (event: React.MouseEvent<HTMLElement>) => void;\n\nclass CustomSelect extends React.Component<\n CustomSelectProps,\n CustomSelectState\n> {\n static defaultProps: Partial<CustomSelectProps> = {\n searchable: false,\n renderOption({ option, ...props }): React.ReactNode {\n return <CustomSelectOption {...props} />;\n },\n options: [],\n emptyText: \"Ничего не найдено\",\n filterFn: defaultFilterFn,\n icon: <DropdownIcon />,\n dropdownOffsetDistance: 0,\n fixDropdownWidth: true,\n selectType: SelectType.Default,\n };\n\n public constructor(props: CustomSelectProps) {\n super(props);\n\n const { value, defaultValue } = props;\n\n const initialValue = value !== undefined ? value : defaultValue;\n\n this.keyboardInput = \"\";\n\n if (process.env.NODE_ENV === \"development\") {\n checkOptionsValueType(props.options);\n }\n\n this.state = {\n opened: false,\n focusedOptionIndex: -1,\n selectedOptionIndex: this.findSelectedIndex(props.options, initialValue),\n nativeSelectValue: initialValue,\n options: props.options,\n inputValue: \"\",\n };\n\n if (props.value !== undefined) {\n this.isControlledOutside = true;\n }\n }\n\n private keyboardInput: string;\n private isControlledOutside = false;\n private selectEl: HTMLSelectElement | null = null;\n private readonly scrollBoxRef = React.createRef<HTMLDivElement>();\n private readonly containerRef = React.createRef<HTMLLabelElement>();\n\n private readonly resetKeyboardInput = () => {\n this.keyboardInput = \"\";\n };\n\n private readonly getSelectedItem = () => {\n const { selectedOptionIndex, options } = this.state;\n\n if (!options?.length) {\n return null;\n }\n\n return selectedOptionIndex !== undefined\n ? options[selectedOptionIndex]\n : undefined;\n };\n\n get areOptionsShown() {\n return this.scrollBoxRef.current !== null;\n }\n\n filter = (\n options: CustomSelectProps[\"options\"],\n inputValue: string,\n filterFn: CustomSelectProps[\"filterFn\"]\n ) => {\n return typeof filterFn === \"function\"\n ? options.filter((option) => filterFn(inputValue, option))\n : options;\n };\n\n findSelectedIndex(\n options: CustomSelectOptionInterface[] | undefined,\n value: SelectValue\n ) {\n return (\n options?.findIndex((item) => {\n value = typeof item.value === \"number\" ? Number(value) : value;\n return item.value === value;\n }) ?? -1\n );\n }\n\n open = () => {\n this.setState(\n ({ selectedOptionIndex }) => ({\n opened: true,\n focusedOptionIndex: selectedOptionIndex,\n }),\n () => {\n const { selectedOptionIndex } = this.state;\n\n if (\n selectedOptionIndex !== undefined &&\n this.isValidIndex(selectedOptionIndex)\n ) {\n this.scrollToElement(selectedOptionIndex, true);\n }\n }\n );\n typeof this.props.onOpen === \"function\" && this.props.onOpen();\n };\n\n close = () => {\n this.resetKeyboardInput();\n\n this.setState(() => ({\n inputValue: \"\",\n opened: false,\n focusedOptionIndex: -1,\n options: this.props.options,\n }));\n typeof this.props.onClose === \"function\" && this.props.onClose();\n };\n\n private isValidIndex(index: number) {\n return index >= 0 && index < (this.state.options?.length ?? 0);\n }\n\n selectFocused = () => {\n const { focusedOptionIndex } = this.state;\n\n if (focusedOptionIndex !== undefined) {\n this.select(focusedOptionIndex);\n }\n };\n\n select = (index: number) => {\n if (!this.isValidIndex(index)) {\n return;\n }\n\n const item = this.state.options?.[index];\n\n this.setState(\n {\n nativeSelectValue: item?.value,\n },\n () => {\n const event = new Event(\"change\", { bubbles: true });\n this.selectEl?.dispatchEvent(event);\n }\n );\n this.close();\n };\n\n onClick = () => {\n this.state.opened ? this.close() : this.open();\n };\n\n onFocus = () => {\n const event = new Event(\"focus\");\n this.selectEl?.dispatchEvent(event);\n };\n\n onBlur = () => {\n this.close();\n const event = new Event(\"blur\");\n this.selectEl?.dispatchEvent(event);\n };\n\n private scrollToElement(index: number, center = false) {\n const dropdown = this.scrollBoxRef.current;\n const item = dropdown ? (dropdown.children[index] as HTMLElement) : null;\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 focusOptionByIndex = (index: number | undefined, scrollTo = true) => {\n if (\n index === undefined ||\n index < 0 ||\n index > (this.state.options?.length ?? 0) - 1\n ) {\n return;\n }\n\n const option = this.state.options?.[index];\n\n if (option?.disabled) {\n return;\n }\n\n scrollTo && this.scrollToElement(index);\n\n this.setState(() => ({\n focusedOptionIndex: index,\n }));\n };\n\n focusOption = (type: \"next\" | \"prev\") => {\n const { focusedOptionIndex } = this.state;\n let index = focusedOptionIndex;\n\n if (type === \"next\") {\n const nextIndex = findIndexAfter(this.state.options, index);\n index = nextIndex === -1 ? findIndexAfter(this.state.options) : nextIndex; // Следующий за index или первый валидный до index\n } else if (type === \"prev\") {\n const beforeIndex = findIndexBefore(this.state.options, index);\n index =\n beforeIndex === -1 ? findIndexBefore(this.state.options) : beforeIndex; // Предшествующий index или последний валидный после index\n }\n\n this.focusOptionByIndex(index);\n };\n\n handleOptionHover: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n this.focusOptionByIndex(\n Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n ),\n false\n );\n };\n\n handleOptionDown: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n };\n\n handleOptionClick: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n const index = Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n );\n const option = this.state.options?.[index];\n\n if (option && !option.disabled) {\n this.selectFocused();\n }\n };\n\n resetFocusedOption = () => {\n this.setState({ focusedOptionIndex: -1 });\n };\n\n onKeyboardInput = (key: string) => {\n const fullInput = this.keyboardInput + key;\n\n const optionIndex = this.state.options?.findIndex((option) => {\n return option.label.toLowerCase().includes(fullInput);\n });\n\n if (optionIndex !== undefined && optionIndex > -1) {\n this.focusOptionByIndex(optionIndex);\n }\n\n this.keyboardInput = fullInput;\n };\n\n /**\n * Нужен для правильного поведения обработчика onClick на select. Фильтрует клики, которые были сделаны по\n * выпадающему списку.\n */\n onLabelClick = (e: React.MouseEvent<HTMLLabelElement>) => {\n if (this.scrollBoxRef.current?.contains(e.target as Node)) {\n e.preventDefault();\n }\n };\n\n onNativeSelectChange: React.ChangeEventHandler<HTMLSelectElement> = (e) => {\n const newSelectedOptionIndex = this.findSelectedIndex(\n this.state.options,\n e.currentTarget.value\n );\n\n if (this.state.selectedOptionIndex !== newSelectedOptionIndex) {\n if (!this.isControlledOutside) {\n this.setState({\n selectedOptionIndex: newSelectedOptionIndex,\n });\n }\n this.props.onChange?.(e);\n }\n };\n\n onInputChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n if (this.props.onInputChange) {\n const options = this.props.onInputChange(e, this.props.options);\n if (options) {\n if (process.env.NODE_ENV === \"development\") {\n warn(\n \"This filtration method is deprecated. Return value of onInputChange will\" +\n \" be ignored in v5.0.0. For custom filtration please update props.options by yourself or use filterFn property\"\n );\n }\n this.setState({\n options,\n selectedOptionIndex: this.findSelectedIndex(\n options,\n this.state.nativeSelectValue\n ),\n inputValue: e.target.value,\n });\n } else {\n this.setState({ inputValue: e.target.value });\n }\n } else {\n const options = this.filter(\n this.props.options,\n e.target.value,\n this.props.filterFn\n );\n this.setState({\n options,\n selectedOptionIndex: this.findSelectedIndex(\n options,\n this.state.nativeSelectValue\n ),\n inputValue: e.target.value,\n });\n }\n };\n\n onInputKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n this.areOptionsShown &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n this.areOptionsShown && this.focusOption(\"prev\");\n break;\n case \"ArrowDown\":\n this.areOptionsShown && this.focusOption(\"next\");\n break;\n case \"Escape\":\n this.close();\n break;\n case \"Enter\":\n this.areOptionsShown && this.selectFocused();\n break;\n }\n };\n\n handleKeyDownSelect = (event: React.KeyboardEvent) => {\n const { opened } = this.state;\n\n if (event.key.length === 1 && event.key !== \" \") {\n this.onKeyboardInput(event.key);\n return;\n }\n\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n this.areOptionsShown &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n if (opened) {\n this.areOptionsShown && this.focusOption(\"prev\");\n } else {\n this.open();\n }\n break;\n case \"ArrowDown\":\n if (opened) {\n this.areOptionsShown && this.focusOption(\"next\");\n } else {\n this.open();\n }\n break;\n case \"Escape\":\n this.close();\n break;\n case \"Enter\":\n case \"Spacebar\":\n case \" \":\n if (opened) {\n this.areOptionsShown && this.selectFocused();\n } else {\n this.open();\n }\n break;\n }\n };\n\n handleKeyUp = debounce(this.resetKeyboardInput, 1000);\n\n componentDidUpdate(prevProps: CustomSelectProps) {\n // Внутри useEffect и так is, можно убрать\n if (\n !is(prevProps.value, this.props.value) ||\n prevProps.options !== this.props.options\n ) {\n if (process.env.NODE_ENV === \"development\") {\n checkOptionsValueType(this.props.options);\n }\n\n this.isControlledOutside = this.props.value !== undefined;\n const value =\n this.props.value === undefined\n ? this.state.nativeSelectValue\n : this.props.value;\n const options =\n this.props.searchable && this.state.inputValue !== undefined\n ? this.filter(\n this.props.options,\n this.state.inputValue,\n this.props.filterFn\n )\n : this.props.options;\n this.setState({\n nativeSelectValue: value,\n selectedOptionIndex: this.findSelectedIndex(options, value),\n options,\n });\n }\n }\n\n renderOption = (option: CustomSelectOptionInterface, index: number) => {\n const { focusedOptionIndex, selectedOptionIndex } = this.state;\n const { renderOption } = this.props;\n const hovered = index === focusedOptionIndex;\n const selected = index === selectedOptionIndex;\n\n return (\n <React.Fragment key={`${option.value}`}>\n {renderOption!({\n option,\n hovered,\n children: option.label,\n selected,\n disabled: option.disabled,\n onClick: this.handleOptionClick,\n onMouseDown: this.handleOptionDown,\n onMouseEnter: this.handleOptionHover,\n })}\n </React.Fragment>\n );\n };\n\n selectRef = (element: HTMLSelectElement) => {\n this.selectEl = element;\n if (this.props.getRef) {\n setRef(element, this.props.getRef);\n }\n };\n\n onPlacementChange = (placement?: Placement) => {\n this.setState(() => ({\n popperPlacement: placement,\n }));\n };\n\n render() {\n const { opened, nativeSelectValue, options: stateOptions } = this.state;\n const {\n searchable,\n name,\n className,\n getRef,\n getRootRef,\n popupDirection,\n options,\n sizeY,\n platform,\n style,\n onChange,\n onBlur,\n onFocus,\n onClick,\n renderOption,\n children,\n emptyText,\n onInputChange,\n filterFn,\n renderDropdown,\n onOpen,\n onClose,\n fetching,\n icon,\n dropdownOffsetDistance,\n fixDropdownWidth,\n forceDropdownPortal,\n ...restProps\n } = this.props;\n const selected = this.getSelectedItem();\n const label = selected ? selected.label : undefined;\n\n const defaultDropdownContent =\n stateOptions !== undefined && stateOptions.length > 0 ? (\n stateOptions.map(this.renderOption)\n ) : (\n <Caption level=\"1\" weight=\"regular\" vkuiClass=\"CustomSelect__empty\">\n {this.props.emptyText}\n </Caption>\n );\n\n let resolvedContent;\n\n if (typeof renderDropdown === \"function\") {\n resolvedContent = renderDropdown({ defaultDropdownContent });\n } else {\n resolvedContent = defaultDropdownContent;\n }\n\n const isPopperDirectionTop = this.state.popperPlacement?.includes(\"top\");\n\n return (\n <label\n vkuiClass={getClassName(\"CustomSelect\", platform)}\n className={className}\n style={style}\n ref={multiRef(this.containerRef, getRootRef)}\n onClick={this.onLabelClick}\n >\n {opened && searchable ? (\n <Input\n {...restProps}\n autoFocus\n onBlur={this.onBlur}\n vkuiClass={classNames({\n CustomSelect__open: opened,\n \"CustomSelect__open--popupDirectionTop\": isPopperDirectionTop,\n \"CustomSelect__open--not-adjacent\":\n (dropdownOffsetDistance as number) > 0,\n })}\n value={this.state.inputValue}\n onKeyDown={this.onInputKeyDown}\n onChange={this.onInputChange}\n // TODO Ожидается, что клик поймает нативный select, но его перехвает Input. К сожалению, это приводит конфликтам типизации.\n // TODO Нужно перестать пытаться превратить CustomSelect в select. Тогда эта проблема уйдёт.\n // @ts-ignore\n onClick={onClick}\n after={icon}\n placeholder={restProps.placeholder}\n />\n ) : (\n <SelectMimicry\n {...restProps}\n aria-hidden={true}\n onClick={this.onClick}\n onKeyDown={this.handleKeyDownSelect}\n onKeyUp={this.handleKeyUp}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n vkuiClass={classNames({\n CustomSelect__open: opened,\n \"CustomSelect__open--popupDirectionTop\": isPopperDirectionTop,\n \"CustomSelect__open--not-adjacent\":\n (dropdownOffsetDistance as number) > 0,\n })}\n after={icon}\n >\n {label}\n </SelectMimicry>\n )}\n <select\n ref={this.selectRef}\n name={name}\n onChange={this.onNativeSelectChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onClick={onClick}\n value={nativeSelectValue}\n aria-hidden={true}\n vkuiClass=\"CustomSelect__control\"\n >\n {options.map((item) => (\n <option key={`${item.value}`} value={item.value} />\n ))}\n </select>\n {opened && (\n <CustomSelectDropdown\n targetRef={this.containerRef}\n placement={popupDirection}\n scrollBoxRef={this.scrollBoxRef}\n onPlacementChange={this.onPlacementChange}\n onMouseLeave={this.resetFocusedOption}\n fetching={fetching}\n offsetDistance={dropdownOffsetDistance}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n >\n {resolvedContent}\n </CustomSelectDropdown>\n )}\n </label>\n );\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default withPlatform(\n withAdaptivity(CustomSelect, {\n sizeY: true,\n })\n);\n"],"file":"CustomSelect.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CustomSelect/CustomSelect.tsx"],"names":["findIndexAfter","options","startIndex","length","findIndex","option","i","disabled","findIndexBefore","endIndex","result","undefined","warn","checkOptionsValueType","Set","map","item","value","size","SelectType","CustomSelect","props","React","createRef","keyboardInput","state","selectedOptionIndex","inputValue","filterFn","filter","setState","opened","focusedOptionIndex","isValidIndex","scrollToElement","onOpen","resetKeyboardInput","onClose","select","index","nativeSelectValue","event","Event","bubbles","selectEl","dispatchEvent","close","open","scrollTo","prevState","type","nextIndex","beforeIndex","focusOptionByIndex","e","Array","prototype","indexOf","call","currentTarget","parentNode","children","preventDefault","selectFocused","key","fullInput","optionIndex","label","toLowerCase","includes","scrollBoxRef","current","contains","target","newSelectedOptionIndex","findSelectedIndex","isControlledOutside","onChange","onInputChange","process","env","NODE_ENV","areOptionsShown","focusOption","onKeyboardInput","renderOption","hovered","selected","onClick","handleOptionClick","onMouseDown","handleOptionDown","onMouseOver","handleOptionHover","element","getRef","placement","popperPlacement","defaultValue","initialValue","Number","center","dropdown","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","prevProps","searchable","stateOptions","name","className","getRootRef","popupDirection","sizeY","platform","style","onBlur","onFocus","emptyText","renderDropdown","fetching","icon","dropdownOffsetDistance","fixDropdownWidth","forceDropdownPortal","restProps","getSelectedItem","defaultDropdownContent","resolvedContent","isPopperDirectionTop","containerRef","onLabelClick","CustomSelect__open","onInputKeyDown","placeholder","handleKeyDownSelect","handleKeyUp","selectRef","onNativeSelectChange","onPlacementChange","resetFocusedOption","Component","defaultFilterFn","selectType","Default"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport SelectMimicry from \"../SelectMimicry/SelectMimicry\";\nimport { debounce, setRef, multiRef } from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport { NativeSelectProps } from \"../NativeSelect/NativeSelect\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport CustomSelectOption, {\n CustomSelectOptionProps,\n} from \"../CustomSelectOption/CustomSelectOption\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { FormFieldProps } from \"../FormField/FormField\";\nimport { HasPlatform } from \"../../types\";\nimport Input from \"../Input/Input\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { defaultFilterFn } from \"../../lib/select\";\nimport { is } from \"../../lib/is\";\nimport { Placement } from \"../Popper/Popper\";\nimport { CustomSelectDropdown } from \"../CustomSelectDropdown/CustomSelectDropdown\";\nimport \"./CustomSelect.css\";\n\nconst findIndexAfter = (\n options: CustomSelectOptionInterface[] = [],\n startIndex = -1\n) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex((option, i) => i > startIndex && !option.disabled);\n};\n\nconst findIndexBefore = (\n options: CustomSelectOptionInterface[] = [],\n endIndex: number = options.length\n) => {\n let result = -1;\n if (options === undefined || endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nconst warn = warnOnce(\"CustomSelect\");\n\nconst checkOptionsValueType = (options: CustomSelectOptionInterface[]) => {\n if (new Set(options.map((item) => typeof item.value)).size > 1) {\n warn(\n \"Some values of your options have different types. CustomSelect onChange always returns a string type.\"\n );\n }\n};\n\ntype SelectValue = React.SelectHTMLAttributes<HTMLSelectElement>[\"value\"];\n\nexport enum SelectType {\n Default = \"default\",\n Plain = \"plain\",\n}\n\nexport interface CustomSelectOptionInterface {\n value: SelectValue;\n label: string;\n disabled?: boolean;\n [index: string]: any;\n}\n\ninterface CustomSelectState {\n inputValue?: string;\n opened?: boolean;\n focusedOptionIndex?: number;\n selectedOptionIndex?: number;\n nativeSelectValue?: SelectValue;\n options?: CustomSelectOptionInterface[];\n popperPlacement?: Placement;\n}\n\nexport interface CustomSelectProps\n extends NativeSelectProps,\n HasPlatform,\n FormFieldProps {\n /**\n * Если `true`, то при клике на селект в нём появится текстовое поле для поиска по `options`. По умолчанию поиск\n * производится по `option.label`.\n */\n searchable?: boolean;\n /**\n * Текст, который будет отображен, если приходит пустой `options`\n */\n emptyText?: string;\n onInputChange?: (\n e: React.ChangeEvent,\n options: CustomSelectOptionInterface[]\n ) => void | CustomSelectOptionInterface[];\n options: Array<{\n value: SelectValue;\n label: string;\n [index: string]: any;\n }>;\n /**\n * Функция для кастомной фильтрации. По-умолчанию поиск производится по option.label.\n */\n filterFn?:\n | false\n | ((\n value: string,\n option: CustomSelectOptionInterface,\n getOptionLabel?: (\n option: Partial<CustomSelectOptionInterface>\n ) => string\n ) => boolean);\n popupDirection?: \"top\" | \"bottom\";\n /**\n * Рендер-проп для кастомного рендера опции.\n * В объекте аргумента приходят [свойства опции](#/CustomSelectOption?id=props)\n */\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В defaultDropdownContent содержится список опций в виде скроллящегося блока.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Если true, то в дропдауне вместо списка опций рисуется спиннер. При переданных renderDropdown и fetching: true,\n * \"победит\" renderDropdown\n */\n fetching?: boolean;\n onClose?: VoidFunction;\n onOpen?: VoidFunction;\n icon?: React.ReactNode;\n dropdownOffsetDistance?: number;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n selectType?: SelectType;\n}\n\ntype MouseEventHandler = (event: React.MouseEvent<HTMLElement>) => void;\n\nclass CustomSelect extends React.Component<\n CustomSelectProps,\n CustomSelectState\n> {\n static defaultProps: Partial<CustomSelectProps> = {\n searchable: false,\n renderOption({ option, ...props }): React.ReactNode {\n return <CustomSelectOption {...props} />;\n },\n options: [],\n emptyText: \"Ничего не найдено\",\n filterFn: defaultFilterFn,\n icon: <DropdownIcon />,\n dropdownOffsetDistance: 0,\n fixDropdownWidth: true,\n selectType: SelectType.Default,\n };\n\n public constructor(props: CustomSelectProps) {\n super(props);\n\n const { value, defaultValue } = props;\n\n const initialValue = value !== undefined ? value : defaultValue;\n\n this.keyboardInput = \"\";\n\n if (process.env.NODE_ENV === \"development\") {\n checkOptionsValueType(props.options);\n }\n\n this.state = {\n opened: false,\n focusedOptionIndex: -1,\n selectedOptionIndex: this.findSelectedIndex(props.options, initialValue),\n nativeSelectValue: initialValue,\n options: props.options,\n inputValue: \"\",\n };\n\n if (props.value !== undefined) {\n this.isControlledOutside = true;\n }\n }\n\n private keyboardInput: string;\n private isControlledOutside = false;\n private selectEl: HTMLSelectElement | null = null;\n private readonly scrollBoxRef = React.createRef<HTMLDivElement>();\n private readonly containerRef = React.createRef<HTMLLabelElement>();\n\n private readonly resetKeyboardInput = () => {\n this.keyboardInput = \"\";\n };\n\n private readonly getSelectedItem = () => {\n const { selectedOptionIndex, options } = this.state;\n\n if (!options?.length) {\n return null;\n }\n\n return selectedOptionIndex !== undefined\n ? options[selectedOptionIndex]\n : undefined;\n };\n\n get areOptionsShown() {\n return this.scrollBoxRef.current !== null;\n }\n\n filter = (\n options: CustomSelectProps[\"options\"],\n inputValue: string,\n filterFn: CustomSelectProps[\"filterFn\"]\n ) => {\n return typeof filterFn === \"function\"\n ? options.filter((option) => filterFn(inputValue, option))\n : options;\n };\n\n findSelectedIndex(\n options: CustomSelectOptionInterface[] | undefined,\n value: SelectValue\n ) {\n return (\n options?.findIndex((item) => {\n value = typeof item.value === \"number\" ? Number(value) : value;\n return item.value === value;\n }) ?? -1\n );\n }\n\n open = () => {\n this.setState(\n ({ selectedOptionIndex }) => ({\n opened: true,\n focusedOptionIndex: selectedOptionIndex,\n }),\n () => {\n const { selectedOptionIndex } = this.state;\n\n if (\n selectedOptionIndex !== undefined &&\n this.isValidIndex(selectedOptionIndex)\n ) {\n this.scrollToElement(selectedOptionIndex, true);\n }\n }\n );\n typeof this.props.onOpen === \"function\" && this.props.onOpen();\n };\n\n close = () => {\n this.resetKeyboardInput();\n\n this.setState(() => ({\n inputValue: \"\",\n opened: false,\n focusedOptionIndex: -1,\n options: this.props.options,\n }));\n typeof this.props.onClose === \"function\" && this.props.onClose();\n };\n\n private isValidIndex(index: number) {\n return index >= 0 && index < (this.state.options?.length ?? 0);\n }\n\n selectFocused = () => {\n const { focusedOptionIndex } = this.state;\n\n if (focusedOptionIndex !== undefined) {\n this.select(focusedOptionIndex);\n }\n };\n\n select = (index: number) => {\n if (!this.isValidIndex(index)) {\n return;\n }\n\n const item = this.state.options?.[index];\n\n this.setState(\n {\n nativeSelectValue: item?.value,\n },\n () => {\n const event = new Event(\"change\", { bubbles: true });\n this.selectEl?.dispatchEvent(event);\n }\n );\n this.close();\n };\n\n onClick = () => {\n this.state.opened ? this.close() : this.open();\n };\n\n onFocus = () => {\n const event = new Event(\"focus\");\n this.selectEl?.dispatchEvent(event);\n };\n\n onBlur = () => {\n this.close();\n const event = new Event(\"blur\");\n this.selectEl?.dispatchEvent(event);\n };\n\n private scrollToElement(index: number, center = false) {\n const dropdown = this.scrollBoxRef.current;\n const item = dropdown ? (dropdown.children[index] as HTMLElement) : null;\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 focusOptionByIndex = (index: number | undefined, scrollTo = true) => {\n if (\n index === undefined ||\n index < 0 ||\n index > (this.state.options?.length ?? 0) - 1\n ) {\n return;\n }\n\n const option = this.state.options?.[index];\n\n if (option?.disabled) {\n return;\n }\n\n scrollTo && this.scrollToElement(index);\n\n this.setState((prevState) =>\n // Это оптимизация, прежде всего, под `onMouseOver`\n prevState.focusedOptionIndex !== index\n ? {\n focusedOptionIndex: index,\n }\n : null\n );\n };\n\n focusOption = (type: \"next\" | \"prev\") => {\n const { focusedOptionIndex } = this.state;\n let index = focusedOptionIndex;\n\n if (type === \"next\") {\n const nextIndex = findIndexAfter(this.state.options, index);\n index = nextIndex === -1 ? findIndexAfter(this.state.options) : nextIndex; // Следующий за index или первый валидный до index\n } else if (type === \"prev\") {\n const beforeIndex = findIndexBefore(this.state.options, index);\n index =\n beforeIndex === -1 ? findIndexBefore(this.state.options) : beforeIndex; // Предшествующий index или последний валидный после index\n }\n\n this.focusOptionByIndex(index);\n };\n\n handleOptionHover: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n this.focusOptionByIndex(\n Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n ),\n false\n );\n };\n\n handleOptionDown: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n };\n\n handleOptionClick: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n const index = Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n );\n const option = this.state.options?.[index];\n\n if (option && !option.disabled) {\n this.selectFocused();\n }\n };\n\n resetFocusedOption = () => {\n this.setState({ focusedOptionIndex: -1 });\n };\n\n onKeyboardInput = (key: string) => {\n const fullInput = this.keyboardInput + key;\n\n const optionIndex = this.state.options?.findIndex((option) => {\n return option.label.toLowerCase().includes(fullInput);\n });\n\n if (optionIndex !== undefined && optionIndex > -1) {\n this.focusOptionByIndex(optionIndex);\n }\n\n this.keyboardInput = fullInput;\n };\n\n /**\n * Нужен для правильного поведения обработчика onClick на select. Фильтрует клики, которые были сделаны по\n * выпадающему списку.\n */\n onLabelClick = (e: React.MouseEvent<HTMLLabelElement>) => {\n if (this.scrollBoxRef.current?.contains(e.target as Node)) {\n e.preventDefault();\n }\n };\n\n onNativeSelectChange: React.ChangeEventHandler<HTMLSelectElement> = (e) => {\n const newSelectedOptionIndex = this.findSelectedIndex(\n this.state.options,\n e.currentTarget.value\n );\n\n if (this.state.selectedOptionIndex !== newSelectedOptionIndex) {\n if (!this.isControlledOutside) {\n this.setState({\n selectedOptionIndex: newSelectedOptionIndex,\n });\n }\n this.props.onChange?.(e);\n }\n };\n\n onInputChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n if (this.props.onInputChange) {\n const options = this.props.onInputChange(e, this.props.options);\n if (options) {\n if (process.env.NODE_ENV === \"development\") {\n warn(\n \"This filtration method is deprecated. Return value of onInputChange will\" +\n \" be ignored in v5.0.0. For custom filtration please update props.options by yourself or use filterFn property\"\n );\n }\n this.setState({\n options,\n selectedOptionIndex: this.findSelectedIndex(\n options,\n this.state.nativeSelectValue\n ),\n inputValue: e.target.value,\n });\n } else {\n this.setState({ inputValue: e.target.value });\n }\n } else {\n const options = this.filter(\n this.props.options,\n e.target.value,\n this.props.filterFn\n );\n this.setState({\n options,\n selectedOptionIndex: this.findSelectedIndex(\n options,\n this.state.nativeSelectValue\n ),\n inputValue: e.target.value,\n });\n }\n };\n\n onInputKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n this.areOptionsShown &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n this.areOptionsShown && this.focusOption(\"prev\");\n break;\n case \"ArrowDown\":\n this.areOptionsShown && this.focusOption(\"next\");\n break;\n case \"Escape\":\n this.close();\n break;\n case \"Enter\":\n this.areOptionsShown && this.selectFocused();\n break;\n }\n };\n\n handleKeyDownSelect = (event: React.KeyboardEvent) => {\n const { opened } = this.state;\n\n if (event.key.length === 1 && event.key !== \" \") {\n this.onKeyboardInput(event.key);\n return;\n }\n\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n this.areOptionsShown &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n if (opened) {\n this.areOptionsShown && this.focusOption(\"prev\");\n } else {\n this.open();\n }\n break;\n case \"ArrowDown\":\n if (opened) {\n this.areOptionsShown && this.focusOption(\"next\");\n } else {\n this.open();\n }\n break;\n case \"Escape\":\n this.close();\n break;\n case \"Enter\":\n case \"Spacebar\":\n case \" \":\n if (opened) {\n this.areOptionsShown && this.selectFocused();\n } else {\n this.open();\n }\n break;\n }\n };\n\n handleKeyUp = debounce(this.resetKeyboardInput, 1000);\n\n componentDidUpdate(prevProps: CustomSelectProps) {\n // Внутри useEffect и так is, можно убрать\n if (\n !is(prevProps.value, this.props.value) ||\n prevProps.options !== this.props.options\n ) {\n if (process.env.NODE_ENV === \"development\") {\n checkOptionsValueType(this.props.options);\n }\n\n this.isControlledOutside = this.props.value !== undefined;\n const value =\n this.props.value === undefined\n ? this.state.nativeSelectValue\n : this.props.value;\n const options =\n this.props.searchable && this.state.inputValue !== undefined\n ? this.filter(\n this.props.options,\n this.state.inputValue,\n this.props.filterFn\n )\n : this.props.options;\n this.setState({\n nativeSelectValue: value,\n selectedOptionIndex: this.findSelectedIndex(options, value),\n options,\n });\n }\n }\n\n renderOption = (option: CustomSelectOptionInterface, index: number) => {\n const { focusedOptionIndex, selectedOptionIndex } = this.state;\n const { renderOption } = this.props;\n const hovered = index === focusedOptionIndex;\n const selected = index === selectedOptionIndex;\n\n return (\n <React.Fragment key={`${option.value}`}>\n {renderOption!({\n option,\n hovered,\n children: option.label,\n selected,\n disabled: option.disabled,\n onClick: this.handleOptionClick,\n onMouseDown: this.handleOptionDown,\n // Используем `onMouseOver` вместо `onMouseEnter`.\n // При параметре `searchable`, обновляется \"ребёнок\", из-за чего `onMouseEnter` не срабатывает в следующих кейсах:\n // 1. До загрузки выпадающего списка, курсор мышки находится над произвольным элементом этого списка.\n // > Лечение: только увод курсора мыши и возвращении его обратно вызывает событие `onMouseEnter` на этот элемент.\n // 2. Если это тач-устройство.\n // > Лечение: нужно нажать на какой-нибудь произвольный элемент списка, после чего `onMouseEnter` будет работать на соседние элементы,\n // но не на тот, на который нажали в первый раз.\n // Более подробно по ссылке https://github.com/facebook/react/issues/13956#issuecomment-1082055744\n onMouseOver: this.handleOptionHover,\n })}\n </React.Fragment>\n );\n };\n\n selectRef = (element: HTMLSelectElement) => {\n this.selectEl = element;\n if (this.props.getRef) {\n setRef(element, this.props.getRef);\n }\n };\n\n onPlacementChange = (placement?: Placement) => {\n this.setState(() => ({\n popperPlacement: placement,\n }));\n };\n\n render() {\n const { opened, nativeSelectValue, options: stateOptions } = this.state;\n const {\n searchable,\n name,\n className,\n getRef,\n getRootRef,\n popupDirection,\n options,\n sizeY,\n platform,\n style,\n onChange,\n onBlur,\n onFocus,\n onClick,\n renderOption,\n children,\n emptyText,\n onInputChange,\n filterFn,\n renderDropdown,\n onOpen,\n onClose,\n fetching,\n icon,\n dropdownOffsetDistance,\n fixDropdownWidth,\n forceDropdownPortal,\n ...restProps\n } = this.props;\n const selected = this.getSelectedItem();\n const label = selected ? selected.label : undefined;\n\n const defaultDropdownContent =\n stateOptions !== undefined && stateOptions.length > 0 ? (\n stateOptions.map(this.renderOption)\n ) : (\n <Caption vkuiClass=\"CustomSelect__empty\">\n {this.props.emptyText}\n </Caption>\n );\n\n let resolvedContent;\n\n if (typeof renderDropdown === \"function\") {\n resolvedContent = renderDropdown({ defaultDropdownContent });\n } else {\n resolvedContent = defaultDropdownContent;\n }\n\n const isPopperDirectionTop = this.state.popperPlacement?.includes(\"top\");\n\n return (\n <label\n vkuiClass={getClassName(\"CustomSelect\", platform)}\n className={className}\n style={style}\n ref={multiRef(this.containerRef, getRootRef)}\n onClick={this.onLabelClick}\n >\n {opened && searchable ? (\n <Input\n {...restProps}\n autoFocus\n onBlur={this.onBlur}\n vkuiClass={classNames({\n CustomSelect__open: opened,\n \"CustomSelect__open--popupDirectionTop\": isPopperDirectionTop,\n \"CustomSelect__open--not-adjacent\":\n (dropdownOffsetDistance as number) > 0,\n })}\n value={this.state.inputValue}\n onKeyDown={this.onInputKeyDown}\n onChange={this.onInputChange}\n // TODO Ожидается, что клик поймает нативный select, но его перехвает Input. К сожалению, это приводит конфликтам типизации.\n // TODO Нужно перестать пытаться превратить CustomSelect в select. Тогда эта проблема уйдёт.\n // @ts-ignore\n onClick={onClick}\n after={icon}\n placeholder={restProps.placeholder}\n />\n ) : (\n <SelectMimicry\n {...restProps}\n aria-hidden={true}\n onClick={this.onClick}\n onKeyDown={this.handleKeyDownSelect}\n onKeyUp={this.handleKeyUp}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n vkuiClass={classNames({\n CustomSelect__open: opened,\n \"CustomSelect__open--popupDirectionTop\": isPopperDirectionTop,\n \"CustomSelect__open--not-adjacent\":\n (dropdownOffsetDistance as number) > 0,\n })}\n after={icon}\n >\n {label}\n </SelectMimicry>\n )}\n <select\n ref={this.selectRef}\n name={name}\n onChange={this.onNativeSelectChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onClick={onClick}\n value={nativeSelectValue}\n aria-hidden={true}\n vkuiClass=\"CustomSelect__control\"\n >\n {options.map((item) => (\n <option key={`${item.value}`} value={item.value} />\n ))}\n </select>\n {opened && (\n <CustomSelectDropdown\n targetRef={this.containerRef}\n placement={popupDirection}\n scrollBoxRef={this.scrollBoxRef}\n onPlacementChange={this.onPlacementChange}\n onMouseLeave={this.resetFocusedOption}\n fetching={fetching}\n offsetDistance={dropdownOffsetDistance}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n >\n {resolvedContent}\n </CustomSelectDropdown>\n )}\n </label>\n );\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default withPlatform(\n withAdaptivity(CustomSelect, {\n sizeY: true,\n })\n);\n"],"file":"CustomSelect.js"}
|
|
@@ -21,7 +21,7 @@ var _utils = require("../../lib/utils");
|
|
|
21
21
|
|
|
22
22
|
var _Text = _interopRequireDefault(require("../Typography/Text/Text"));
|
|
23
23
|
|
|
24
|
-
var _Caption =
|
|
24
|
+
var _Caption = require("../Typography/Caption/Caption");
|
|
25
25
|
|
|
26
26
|
var _useAdaptivity2 = require("../../hooks/useAdaptivity");
|
|
27
27
|
|
|
@@ -67,9 +67,7 @@ var CustomSelectOption = function CustomSelectOption(_ref) {
|
|
|
67
67
|
vkuiClass: "CustomSelectOption__main"
|
|
68
68
|
}, (0, _jsxRuntime.createScopedElement)("div", {
|
|
69
69
|
vkuiClass: "CustomSelectOption__children"
|
|
70
|
-
}, children), (0, _utils.hasReactNode)(description) && (0, _jsxRuntime.createScopedElement)(_Caption.
|
|
71
|
-
level: "1",
|
|
72
|
-
weight: "regular",
|
|
70
|
+
}, children), (0, _utils.hasReactNode)(description) && (0, _jsxRuntime.createScopedElement)(_Caption.Caption, {
|
|
73
71
|
vkuiClass: "CustomSelectOption__description"
|
|
74
72
|
}, description)), (0, _jsxRuntime.createScopedElement)("div", {
|
|
75
73
|
vkuiClass: "CustomSelectOption__after"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/CustomSelectOption/CustomSelectOption.tsx"],"names":["warn","CustomSelectOption","children","hovered","selected","before","after","option","description","disabled","restProps","title","undefined","sizeY","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;AAgBA,IAAMA,IAAI,GAAG,wBAAS,oBAAT,CAAb;;AAEA,IAAMC,kBAAqD,GAAG,SAAxDA,kBAAwD,OAU/B;AAAA,MAT7BC,QAS6B,QAT7BA,QAS6B;AAAA,MAR7BC,OAQ6B,QAR7BA,OAQ6B;AAAA,MAP7BC,QAO6B,QAP7BA,QAO6B;AAAA,MAN7BC,MAM6B,QAN7BA,MAM6B;AAAA,MAL7BC,KAK6B,QAL7BA,KAK6B;AAAA,MAJ7BC,MAI6B,QAJ7BA,MAI6B;AAAA,MAH7BC,WAG6B,QAH7BA,WAG6B;AAAA,MAF7BC,QAE6B,QAF7BA,QAE6B;AAAA,MAD1BC,SAC0B;AAC7B,MAAMC,KAAK,GAAG,OAAOT,QAAP,KAAoB,QAApB,GAA+BA,QAA/B,GAA0CU,SAAxD;;AACA,uBAAkB,oCAAlB;AAAA,MAAQC,KAAR,kBAAQA,KAAR;;AAEA,MAAI,CAAC,CAACN,MAAF,IAAYO,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzC,EAAwD;AACtDhB,IAAAA,IAAI,CAAC,mEAAD,CAAJ;AACD;;AAED,SACE,qCAAC,aAAD,6BACMU,SADN;AAEE,IAAA,SAAS,EAAC,KAFZ;AAGE,IAAA,MAAM,EAAC,SAHT;AAIE,IAAA,IAAI,EAAC,QAJP;AAKE,IAAA,KAAK,EAAEC,KALT;AAME,qBAAeF,QANjB;AAOE,qBAAeL,QAPjB;AAQE,IAAA,SAAS,EAAE,4BACT,oBADS,sCAEoBS,KAFpB,GAGT;AACE,mCAA6BV,OAAO,IAAI,CAACM,QAD3C;AAEE,sCAAgCL,QAFlC;AAGE,sCAAgCK;AAHlC,KAHS;AARb,MAkBG,yBAAaJ,MAAb,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6CA,MAA7C,CAnBJ,EAqBE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA+CH,QAA/C,CADF,EAEG,yBAAaM,WAAb,KACC,qCAAC,gBAAD;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CustomSelectOption/CustomSelectOption.tsx"],"names":["warn","CustomSelectOption","children","hovered","selected","before","after","option","description","disabled","restProps","title","undefined","sizeY","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;AAgBA,IAAMA,IAAI,GAAG,wBAAS,oBAAT,CAAb;;AAEA,IAAMC,kBAAqD,GAAG,SAAxDA,kBAAwD,OAU/B;AAAA,MAT7BC,QAS6B,QAT7BA,QAS6B;AAAA,MAR7BC,OAQ6B,QAR7BA,OAQ6B;AAAA,MAP7BC,QAO6B,QAP7BA,QAO6B;AAAA,MAN7BC,MAM6B,QAN7BA,MAM6B;AAAA,MAL7BC,KAK6B,QAL7BA,KAK6B;AAAA,MAJ7BC,MAI6B,QAJ7BA,MAI6B;AAAA,MAH7BC,WAG6B,QAH7BA,WAG6B;AAAA,MAF7BC,QAE6B,QAF7BA,QAE6B;AAAA,MAD1BC,SAC0B;AAC7B,MAAMC,KAAK,GAAG,OAAOT,QAAP,KAAoB,QAApB,GAA+BA,QAA/B,GAA0CU,SAAxD;;AACA,uBAAkB,oCAAlB;AAAA,MAAQC,KAAR,kBAAQA,KAAR;;AAEA,MAAI,CAAC,CAACN,MAAF,IAAYO,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzC,EAAwD;AACtDhB,IAAAA,IAAI,CAAC,mEAAD,CAAJ;AACD;;AAED,SACE,qCAAC,aAAD,6BACMU,SADN;AAEE,IAAA,SAAS,EAAC,KAFZ;AAGE,IAAA,MAAM,EAAC,SAHT;AAIE,IAAA,IAAI,EAAC,QAJP;AAKE,IAAA,KAAK,EAAEC,KALT;AAME,qBAAeF,QANjB;AAOE,qBAAeL,QAPjB;AAQE,IAAA,SAAS,EAAE,4BACT,oBADS,sCAEoBS,KAFpB,GAGT;AACE,mCAA6BV,OAAO,IAAI,CAACM,QAD3C;AAEE,sCAAgCL,QAFlC;AAGE,sCAAgCK;AAHlC,KAHS;AARb,MAkBG,yBAAaJ,MAAb,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6CA,MAA7C,CAnBJ,EAqBE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA+CH,QAA/C,CADF,EAEG,yBAAaM,WAAb,KACC,qCAAC,gBAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KACGA,WADH,CAHJ,CArBF,EA6BE;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,yBAAaF,KAAb,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAA8CA,KAA9C,CAFJ,EAIGF,QAAQ,IACP,qCAAC,iBAAD;AAAY,IAAA,SAAS,EAAC;AAAtB,IALJ,CA7BF,CADF;AAwCD,CA1DD,C,CA4DA;;;eACeH,kB","sourcesContent":["import * as React from \"react\";\nimport { Icon16Done } from \"@vkontakte/icons\";\nimport { classNames } from \"../../lib/classNames\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Text from \"../Typography/Text/Text\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { HasRootRef } from \"../../types\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./CustomSelectOption.css\";\n\nexport interface CustomSelectOptionProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n option?: any;\n selected?: boolean;\n focused?: boolean;\n hovered?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n description?: React.ReactNode;\n disabled?: boolean;\n}\n\nconst warn = warnOnce(\"CustomSelectOption\");\n\nconst CustomSelectOption: React.FC<CustomSelectOptionProps> = ({\n children,\n hovered,\n selected,\n before,\n after,\n option,\n description,\n disabled,\n ...restProps\n}: CustomSelectOptionProps) => {\n const title = typeof children === \"string\" ? children : undefined;\n const { sizeY } = useAdaptivity();\n\n if (!!option && process.env.NODE_ENV === \"development\") {\n warn(\"Свойство option было добавлено по ошибке и будет удалено в 5.0.0.\");\n }\n\n return (\n <Text\n {...restProps}\n Component=\"div\"\n weight=\"regular\"\n role=\"option\"\n title={title}\n aria-disabled={disabled}\n aria-selected={selected}\n vkuiClass={classNames(\n \"CustomSelectOption\",\n `CustomSelectOption--sizeY-${sizeY}`,\n {\n \"CustomSelectOption--hover\": hovered && !disabled,\n \"CustomSelectOption--selected\": selected,\n \"CustomSelectOption--disabled\": disabled,\n }\n )}\n >\n {hasReactNode(before) && (\n <div vkuiClass=\"CustomSelectOption__before\">{before}</div>\n )}\n <div vkuiClass=\"CustomSelectOption__main\">\n <div vkuiClass=\"CustomSelectOption__children\">{children}</div>\n {hasReactNode(description) && (\n <Caption vkuiClass=\"CustomSelectOption__description\">\n {description}\n </Caption>\n )}\n </div>\n <div vkuiClass=\"CustomSelectOption__after\">\n {hasReactNode(after) && (\n <div vkuiClass=\"CustomSelectOption__afterIn\">{after}</div>\n )}\n {selected && (\n <Icon16Done vkuiClass=\"CustomSelectOption__selectedIcon\" />\n )}\n </div>\n </Text>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default CustomSelectOption;\n"],"file":"CustomSelectOption.js"}
|
|
@@ -13,18 +13,16 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
13
13
|
|
|
14
14
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
15
|
|
|
16
|
-
var _Caption =
|
|
16
|
+
var _Caption = require("../Typography/Caption/Caption");
|
|
17
17
|
|
|
18
18
|
var _excluded = ["children"];
|
|
19
19
|
|
|
20
20
|
var Footer = function Footer(_ref) {
|
|
21
21
|
var children = _ref.children,
|
|
22
22
|
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
23
|
-
return (0, _jsxRuntime.createScopedElement)(_Caption.
|
|
23
|
+
return (0, _jsxRuntime.createScopedElement)(_Caption.Caption, (0, _extends2.default)({
|
|
24
24
|
Component: "footer"
|
|
25
25
|
}, restProps, {
|
|
26
|
-
level: "1",
|
|
27
|
-
weight: "regular",
|
|
28
26
|
vkuiClass: "Footer"
|
|
29
27
|
}), children);
|
|
30
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Footer/Footer.tsx"],"names":["Footer","children","restProps"],"mappings":";;;;;;;;;;;;;;;AAEA;;;;AAKO,IAAMA,MAA6B,GAAG,SAAhCA,MAAgC,OAG1B;AAAA,MAFjBC,QAEiB,QAFjBA,QAEiB;AAAA,MADdC,SACc;AACjB,SACE,qCAAC,gBAAD;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Footer/Footer.tsx"],"names":["Footer","children","restProps"],"mappings":";;;;;;;;;;;;;;;AAEA;;;;AAKO,IAAMA,MAA6B,GAAG,SAAhCA,MAAgC,OAG1B;AAAA,MAFjBC,QAEiB,QAFjBA,QAEiB;AAAA,MADdC,SACc;AACjB,SACE,qCAAC,gBAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAAgCA,SAAhC;AAA2C,IAAA,SAAS,EAAC;AAArD,MACGD,QADH,CADF;AAKD,CATM","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport \"./Footer.css\";\n\nexport type FooterProps = React.AllHTMLAttributes<HTMLElement> & HasComponent;\n\nexport const Footer: React.FC<FooterProps> = ({\n children,\n ...restProps\n}: FooterProps) => {\n return (\n <Caption Component=\"footer\" {...restProps} vkuiClass=\"Footer\">\n {children}\n </Caption>\n );\n};\n"],"file":"Footer.js"}
|
|
@@ -29,7 +29,7 @@ var _utils = require("../../lib/utils");
|
|
|
29
29
|
|
|
30
30
|
var _Subhead = _interopRequireDefault(require("../Typography/Subhead/Subhead"));
|
|
31
31
|
|
|
32
|
-
var _Caption =
|
|
32
|
+
var _Caption = require("../Typography/Caption/Caption");
|
|
33
33
|
|
|
34
34
|
var _useAdaptivity2 = require("../../hooks/useAdaptivity");
|
|
35
35
|
|
|
@@ -61,9 +61,7 @@ var FormItem = function FormItem(_ref) {
|
|
|
61
61
|
|
|
62
62
|
var wrappedChildren = (0, _jsxRuntime.createScopedElement)(React.Fragment, null, (0, _utils.hasReactNode)(top) && (0, _jsxRuntime.createScopedElement)(_Subhead.default, {
|
|
63
63
|
vkuiClass: "FormItem__top"
|
|
64
|
-
}, top), children, (0, _utils.hasReactNode)(bottom) && (0, _jsxRuntime.createScopedElement)(_Caption.
|
|
65
|
-
level: "1",
|
|
66
|
-
weight: "regular",
|
|
64
|
+
}, top), children, (0, _utils.hasReactNode)(bottom) && (0, _jsxRuntime.createScopedElement)(_Caption.Caption, {
|
|
67
65
|
vkuiClass: "FormItem__bottom"
|
|
68
66
|
}, bottom));
|
|
69
67
|
return (0, _jsxRuntime.createScopedElement)(Component, (0, _extends2.default)({}, restProps, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/FormItem/FormItem.tsx"],"names":["FormItem","children","top","bottom","status","Component","removable","onRemove","noop","removePlaceholder","getRootRef","restProps","platform","rootEl","sizeY","wrappedChildren","e","current"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAiBO,IAAMA,QAAiC,GAAG,SAApCA,QAAoC,OAW5B;AAAA,MAVnBC,QAUmB,QAVnBA,QAUmB;AAAA,MATnBC,GASmB,QATnBA,GASmB;AAAA,MARnBC,MAQmB,QARnBA,MAQmB;AAAA,yBAPnBC,MAOmB;AAAA,MAPnBA,MAOmB,4BAPV,SAOU;AAAA,4BANnBC,SAMmB;AAAA,MANnBA,SAMmB,+BANP,KAMO;AAAA,MALnBC,SAKmB,QALnBA,SAKmB;AAAA,2BAJnBC,QAImB;AAAA,MAJnBA,SAImB,8BAJRC,WAIQ;AAAA,mCAHnBC,iBAGmB;AAAA,MAHnBA,iBAGmB,sCAHC,SAGD;AAAA,MAFnBC,UAEmB,QAFnBA,UAEmB;AAAA,MADhBC,SACgB;;AACnB,MAAMC,QAAQ,GAAG,+BAAjB;AACA,MAAMC,MAAM,GAAG,gCAAaH,UAAb,CAAf;;AACA,uBAAkB,oCAAlB;AAAA,MAAQI,KAAR,kBAAQA,KAAR;;AAEA,MAAMC,eAAe,GACnB,qCAAC,KAAD,CAAO,QAAP,QACG,yBAAab,GAAb,KAAqB,qCAAC,gBAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAAoCA,GAApC,CADxB,EAEGD,QAFH,EAGG,yBAAaE,MAAb,KACC,qCAAC,gBAAD;AAAS,IAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/FormItem/FormItem.tsx"],"names":["FormItem","children","top","bottom","status","Component","removable","onRemove","noop","removePlaceholder","getRootRef","restProps","platform","rootEl","sizeY","wrappedChildren","e","current"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAiBO,IAAMA,QAAiC,GAAG,SAApCA,QAAoC,OAW5B;AAAA,MAVnBC,QAUmB,QAVnBA,QAUmB;AAAA,MATnBC,GASmB,QATnBA,GASmB;AAAA,MARnBC,MAQmB,QARnBA,MAQmB;AAAA,yBAPnBC,MAOmB;AAAA,MAPnBA,MAOmB,4BAPV,SAOU;AAAA,4BANnBC,SAMmB;AAAA,MANnBA,SAMmB,+BANP,KAMO;AAAA,MALnBC,SAKmB,QALnBA,SAKmB;AAAA,2BAJnBC,QAImB;AAAA,MAJnBA,SAImB,8BAJRC,WAIQ;AAAA,mCAHnBC,iBAGmB;AAAA,MAHnBA,iBAGmB,sCAHC,SAGD;AAAA,MAFnBC,UAEmB,QAFnBA,UAEmB;AAAA,MADhBC,SACgB;;AACnB,MAAMC,QAAQ,GAAG,+BAAjB;AACA,MAAMC,MAAM,GAAG,gCAAaH,UAAb,CAAf;;AACA,uBAAkB,oCAAlB;AAAA,MAAQI,KAAR,kBAAQA,KAAR;;AAEA,MAAMC,eAAe,GACnB,qCAAC,KAAD,CAAO,QAAP,QACG,yBAAab,GAAb,KAAqB,qCAAC,gBAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAAoCA,GAApC,CADxB,EAEGD,QAFH,EAGG,yBAAaE,MAAb,KACC,qCAAC,gBAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAAuCA,MAAvC,CAJJ,CADF;AAUA,SACE,qCAAC,SAAD,6BACMQ,SADN;AAEE,IAAA,GAAG,EAAEE,MAFP;AAGE,IAAA,SAAS,EAAE,4BACT,gCAAa,UAAb,EAAyBD,QAAzB,CADS,sBAEIR,MAFJ,6BAGUU,KAHV,GAIT;AACE,2BAAqB,yBAAaZ,GAAb,CADvB;AAEE,6BAAuBI;AAFzB,KAJS;AAHb,MAaGA,SAAS,GACR,qCAAC,oBAAD;AACE,IAAA,KAAK,EAAC,OADR;AAEE,IAAA,QAAQ,EAAE,kBAACU,CAAD,EAAO;AACf,UAAIH,MAAJ,aAAIA,MAAJ,eAAIA,MAAM,CAAEI,OAAZ,EAAqB;AACnBV,QAAAA,SAAQ,CAACS,CAAD,EAAIH,MAAM,CAACI,OAAX,CAAR;AACD;AACF,KANH;AAOE,IAAA,iBAAiB,EAAER;AAPrB,KASE;AAAK,IAAA,SAAS,EAAC;AAAf,KAAsCM,eAAtC,CATF,CADQ,GAaRA,eA1BJ,CADF;AA+BD,CAzDM","sourcesContent":["import * as React from \"react\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { hasReactNode, noop } from \"../../lib/utils\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { Removable, RemovableProps } from \"../Removable/Removable\";\nimport \"./FormItem.css\";\n\nexport interface FormItemProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent,\n RemovableProps {\n top?: React.ReactNode;\n bottom?: React.ReactNode;\n status?: \"default\" | \"error\" | \"valid\";\n /**\n * Дает возможность удалить `FormItem`. Рекомендуется использовать только для `Input` или `Select`.\n */\n removable?: boolean;\n}\n\nexport const FormItem: React.FC<FormItemProps> = ({\n children,\n top,\n bottom,\n status = \"default\",\n Component = \"div\",\n removable,\n onRemove = noop,\n removePlaceholder = \"Удалить\",\n getRootRef,\n ...restProps\n}: FormItemProps) => {\n const platform = usePlatform();\n const rootEl = useExternRef(getRootRef);\n const { sizeY } = useAdaptivity();\n\n const wrappedChildren = (\n <React.Fragment>\n {hasReactNode(top) && <Subhead vkuiClass=\"FormItem__top\">{top}</Subhead>}\n {children}\n {hasReactNode(bottom) && (\n <Caption vkuiClass=\"FormItem__bottom\">{bottom}</Caption>\n )}\n </React.Fragment>\n );\n\n return (\n <Component\n {...restProps}\n ref={rootEl}\n vkuiClass={classNames(\n getClassName(\"FormItem\", platform),\n `FormItem--${status}`,\n `FormItem--sizeY-${sizeY}`,\n {\n \"FormItem--withTop\": hasReactNode(top),\n \"FormItem--removable\": removable,\n }\n )}\n >\n {removable ? (\n <Removable\n align=\"start\"\n onRemove={(e) => {\n if (rootEl?.current) {\n onRemove(e, rootEl.current);\n }\n }}\n removePlaceholder={removePlaceholder}\n >\n <div vkuiClass=\"FormItem__removable\">{wrappedChildren}</div>\n </Removable>\n ) : (\n wrappedChildren\n )}\n </Component>\n );\n};\n"],"file":"FormItem.js"}
|
|
@@ -21,7 +21,7 @@ var _usePlatform = require("../../hooks/usePlatform");
|
|
|
21
21
|
|
|
22
22
|
var _Headline = _interopRequireDefault(require("../Typography/Headline/Headline"));
|
|
23
23
|
|
|
24
|
-
var _Caption =
|
|
24
|
+
var _Caption = require("../Typography/Caption/Caption");
|
|
25
25
|
|
|
26
26
|
var _utils = require("../../lib/utils");
|
|
27
27
|
|
|
@@ -39,14 +39,9 @@ var FormStatus = function FormStatus(_ref) {
|
|
|
39
39
|
}), (0, _utils.hasReactNode)(header) && (0, _jsxRuntime.createScopedElement)(_Headline.default, {
|
|
40
40
|
weight: "medium",
|
|
41
41
|
vkuiClass: "FormStatus__header"
|
|
42
|
-
}, header), dangerouslySetInnerHTML && (0, _jsxRuntime.createScopedElement)(_Caption.
|
|
43
|
-
level: "1",
|
|
44
|
-
weight: "regular",
|
|
42
|
+
}, header), dangerouslySetInnerHTML && (0, _jsxRuntime.createScopedElement)(_Caption.Caption, {
|
|
45
43
|
dangerouslySetInnerHTML: dangerouslySetInnerHTML
|
|
46
|
-
}), (0, _utils.hasReactNode)(children) && !dangerouslySetInnerHTML && (0, _jsxRuntime.createScopedElement)(_Caption.
|
|
47
|
-
level: "1",
|
|
48
|
-
weight: "regular"
|
|
49
|
-
}, children));
|
|
44
|
+
}), (0, _utils.hasReactNode)(children) && !dangerouslySetInnerHTML && (0, _jsxRuntime.createScopedElement)(_Caption.Caption, null, children));
|
|
50
45
|
};
|
|
51
46
|
|
|
52
47
|
exports.FormStatus = FormStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/FormStatus/FormStatus.tsx"],"names":["FormStatus","mode","header","children","dangerouslySetInnerHTML","restProps","platform"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAQO,IAAMA,UAAoD,GAAG,SAAvDA,UAAuD,OAM7C;AAAA,MALrBC,IAKqB,QALrBA,IAKqB;AAAA,MAJrBC,MAIqB,QAJrBA,MAIqB;AAAA,MAHrBC,QAGqB,QAHrBA,QAGqB;AAAA,MAFrBC,uBAEqB,QAFrBA,uBAEqB;AAAA,MADlBC,SACkB;AACrB,MAAMC,QAAQ,GAAG,+BAAjB;AAEA,SACE,uEACMD,SADN;AAEE,IAAA,SAAS,EAAE,4BACT,gCAAa,YAAb,EAA2BC,QAA3B,CADS,wBAEML,IAFN;AAFb,MAOG,yBAAaC,MAAb,KACC,qCAAC,iBAAD;AAAU,IAAA,MAAM,EAAC,QAAjB;AAA0B,IAAA,SAAS,EAAC;AAApC,KACGA,MADH,CARJ,EAYGE,uBAAuB,IACtB,qCAAC,gBAAD;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/FormStatus/FormStatus.tsx"],"names":["FormStatus","mode","header","children","dangerouslySetInnerHTML","restProps","platform"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAQO,IAAMA,UAAoD,GAAG,SAAvDA,UAAuD,OAM7C;AAAA,MALrBC,IAKqB,QALrBA,IAKqB;AAAA,MAJrBC,MAIqB,QAJrBA,MAIqB;AAAA,MAHrBC,QAGqB,QAHrBA,QAGqB;AAAA,MAFrBC,uBAEqB,QAFrBA,uBAEqB;AAAA,MADlBC,SACkB;AACrB,MAAMC,QAAQ,GAAG,+BAAjB;AAEA,SACE,uEACMD,SADN;AAEE,IAAA,SAAS,EAAE,4BACT,gCAAa,YAAb,EAA2BC,QAA3B,CADS,wBAEML,IAFN;AAFb,MAOG,yBAAaC,MAAb,KACC,qCAAC,iBAAD;AAAU,IAAA,MAAM,EAAC,QAAjB;AAA0B,IAAA,SAAS,EAAC;AAApC,KACGA,MADH,CARJ,EAYGE,uBAAuB,IACtB,qCAAC,gBAAD;AAAS,IAAA,uBAAuB,EAAEA;AAAlC,IAbJ,EAeG,yBAAaD,QAAb,KAA0B,CAACC,uBAA3B,IACC,qCAAC,gBAAD,QAAUD,QAAV,CAhBJ,CADF;AAqBD,CA9BM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport \"./FormStatus.css\";\n\nexport interface FormStatusProps extends React.HTMLAttributes<HTMLDivElement> {\n mode?: \"default\" | \"error\";\n header?: React.ReactNode;\n}\n\nexport const FormStatus: React.FunctionComponent<FormStatusProps> = ({\n mode,\n header,\n children,\n dangerouslySetInnerHTML,\n ...restProps\n}: FormStatusProps) => {\n const platform = usePlatform();\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"FormStatus\", platform),\n `FormStatus--${mode}`\n )}\n >\n {hasReactNode(header) && (\n <Headline weight=\"medium\" vkuiClass=\"FormStatus__header\">\n {header}\n </Headline>\n )}\n {dangerouslySetInnerHTML && (\n <Caption dangerouslySetInnerHTML={dangerouslySetInnerHTML} />\n )}\n {hasReactNode(children) && !dangerouslySetInnerHTML && (\n <Caption>{children}</Caption>\n )}\n </div>\n );\n};\n"],"file":"FormStatus.js"}
|
|
@@ -27,7 +27,7 @@ var _Separator = _interopRequireDefault(require("../Separator/Separator"));
|
|
|
27
27
|
|
|
28
28
|
var _utils = require("../../lib/utils");
|
|
29
29
|
|
|
30
|
-
var _Caption =
|
|
30
|
+
var _Caption = require("../Typography/Caption/Caption");
|
|
31
31
|
|
|
32
32
|
var _withAdaptivity = require("../../hoc/withAdaptivity");
|
|
33
33
|
|
|
@@ -60,10 +60,8 @@ var Group = function Group(props) {
|
|
|
60
60
|
vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)("Group", platform), "Group--sizeX-".concat(sizeX), "Group--".concat(computedMode))
|
|
61
61
|
}), (0, _jsxRuntime.createScopedElement)("div", {
|
|
62
62
|
vkuiClass: "Group__inner"
|
|
63
|
-
}, header, children, (0, _utils.hasReactNode)(description) && (0, _jsxRuntime.createScopedElement)(_Caption.
|
|
64
|
-
vkuiClass: "Group__description"
|
|
65
|
-
weight: "regular",
|
|
66
|
-
level: "1"
|
|
63
|
+
}, header, children, (0, _utils.hasReactNode)(description) && (0, _jsxRuntime.createScopedElement)(_Caption.Caption, {
|
|
64
|
+
vkuiClass: "Group__description"
|
|
67
65
|
}, description)), separator !== "hide" && (0, _jsxRuntime.createScopedElement)(_Separator.default, {
|
|
68
66
|
vkuiClass: (0, _classNames.classNames)("Group__separator", {
|
|
69
67
|
"Group__separator--force": separator === "show"
|