@vkontakte/vkui 4.29.0 → 4.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +111 -84
- package/.cache/ts/src/components/Alert/Alert.d.ts +4 -1
- package/.cache/ts/src/components/AppRoot/ScrollContext.d.ts +6 -14
- package/.cache/ts/src/components/Calendar/Calendar.d.ts +10 -1
- package/.cache/ts/src/components/CalendarHeader/CalendarHeader.d.ts +8 -0
- package/.cache/ts/src/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +1 -1
- package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +1 -1
- package/.cache/ts/src/components/DateInput/DateInput.d.ts +1 -1
- package/.cache/ts/src/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/.cache/ts/src/components/FormField/FormField.d.ts +15 -1
- package/.cache/ts/src/components/Input/Input.d.ts +1 -1
- package/.cache/ts/src/components/NativeSelect/NativeSelect.d.ts +1 -2
- package/.cache/ts/src/components/Select/Select.d.ts +1 -1
- package/.cache/ts/src/components/SelectMimicry/SelectMimicry.d.ts +3 -3
- package/.cache/ts/src/components/TabbarItem/TabbarItem.d.ts +1 -1
- package/.cache/ts/src/hooks/useAdaptivity.d.ts +1 -0
- package/.cache/ts/src/hooks/useCalendar.d.ts +4 -3
- package/.cache/ts/src/index.d.ts +2 -1
- package/dist/cjs/components/ActionSheet/ActionSheet.js +6 -10
- package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cjs/components/Alert/Alert.d.ts +4 -1
- package/dist/cjs/components/Alert/Alert.js +20 -2
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRoot.js +18 -2
- package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cjs/components/AppRoot/ScrollContext.d.ts +6 -14
- package/dist/cjs/components/AppRoot/ScrollContext.js +94 -2
- package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cjs/components/Calendar/Calendar.d.ts +10 -1
- package/dist/cjs/components/Calendar/Calendar.js +16 -5
- package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
- package/dist/cjs/components/CalendarHeader/CalendarHeader.d.ts +8 -0
- package/dist/cjs/components/CalendarHeader/CalendarHeader.js +15 -9
- package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.js +7 -3
- package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cjs/components/ChipsInput/ChipsInput.js +3 -1
- package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +6 -3
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.d.ts +1 -1
- package/dist/cjs/components/DateInput/DateInput.js +14 -2
- package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js +6 -2
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cjs/components/Epic/Epic.js +1 -1
- package/dist/cjs/components/Epic/Epic.js.map +1 -1
- package/dist/cjs/components/FormField/FormField.d.ts +15 -1
- package/dist/cjs/components/FormField/FormField.js +6 -2
- package/dist/cjs/components/FormField/FormField.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +12 -3
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cjs/components/Input/Input.d.ts +1 -1
- package/dist/cjs/components/Input/Input.js +3 -1
- package/dist/cjs/components/Input/Input.js.map +1 -1
- package/dist/cjs/components/ModalCard/ModalCard.js +3 -1
- package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js +4 -2
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.js +6 -2
- package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +2 -10
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js +2 -2
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js +6 -4
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cjs/components/ModalRoot/useModalManager.js +1 -1
- package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.d.ts +1 -2
- package/dist/cjs/components/NativeSelect/NativeSelect.js +5 -7
- package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cjs/components/PanelHeader/PanelHeader.js +6 -4
- package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +4 -1
- package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cjs/components/PopoutRoot/PopoutRoot.js +3 -1
- package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js +3 -0
- package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cjs/components/Select/Select.d.ts +1 -1
- package/dist/cjs/components/Select/Select.js +2 -2
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.d.ts +3 -3
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js +3 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.d.ts +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/components/Typography/Text/Text.js +1 -1
- package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivity.d.ts +1 -0
- package/dist/cjs/hooks/useAdaptivity.js +18 -1
- package/dist/cjs/hooks/useAdaptivity.js.map +1 -1
- package/dist/cjs/hooks/useCalendar.d.ts +4 -3
- package/dist/cjs/hooks/useCalendar.js +15 -6
- package/dist/cjs/hooks/useCalendar.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +10 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/getNavId.js +1 -1
- package/dist/cjs/lib/getNavId.js.map +1 -1
- package/dist/cjs/lib/platform.js +29 -0
- package/dist/cjs/lib/platform.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js +5 -9
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/components/Alert/Alert.d.ts +4 -1
- package/dist/components/Alert/Alert.js +18 -2
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.js +17 -2
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppRoot/ScrollContext.d.ts +6 -14
- package/dist/components/AppRoot/ScrollContext.js +87 -1
- package/dist/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +10 -1
- package/dist/components/Calendar/Calendar.js +16 -5
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.d.ts +8 -0
- package/dist/components/CalendarHeader/CalendarHeader.js +15 -9
- package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +7 -3
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/ChipsInput/ChipsInput.js +3 -1
- package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +6 -3
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts +1 -1
- package/dist/components/DateInput/DateInput.js +14 -2
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +6 -2
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/Epic/Epic.js +1 -1
- package/dist/components/Epic/Epic.js.map +1 -1
- package/dist/components/FormField/FormField.d.ts +15 -1
- package/dist/components/FormField/FormField.js +6 -2
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js +12 -3
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/Input/Input.d.ts +1 -1
- package/dist/components/Input/Input.js +3 -1
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/ModalCard/ModalCard.js +3 -2
- package/dist/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +5 -4
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.js +5 -3
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.js +2 -9
- package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +2 -2
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootAdaptive.js +5 -5
- package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/components/ModalRoot/useModalManager.js +1 -1
- package/dist/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.d.ts +1 -2
- package/dist/components/NativeSelect/NativeSelect.js +3 -4
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.js +6 -4
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/PanelHeaderContext/PanelHeaderContext.js +3 -1
- package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/components/PopoutRoot/PopoutRoot.js +3 -2
- package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinner.js +2 -0
- package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/components/Select/Select.d.ts +1 -1
- package/dist/components/Select/Select.js +1 -1
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.d.ts +3 -3
- package/dist/components/SelectMimicry/SelectMimicry.js +3 -1
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.d.ts +1 -1
- package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +1 -1
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Typography/Text/Text.js +1 -1
- package/dist/components/Typography/Text/Text.js.map +1 -1
- package/dist/components.css +18 -18
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +5 -9
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.d.ts +4 -1
- package/dist/cssm/components/Alert/Alert.js +18 -2
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +17 -2
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/ScrollContext.d.ts +6 -14
- package/dist/cssm/components/AppRoot/ScrollContext.js +87 -1
- package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cssm/components/Button/Button.css +9 -9
- package/dist/cssm/components/ButtonGroup/ButtonGroup.css +1 -1
- package/dist/cssm/components/Calendar/Calendar.css +1 -1
- package/dist/cssm/components/Calendar/Calendar.d.ts +10 -1
- package/dist/cssm/components/Calendar/Calendar.js +16 -5
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.css +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.css +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.css +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.d.ts +8 -0
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js +15 -9
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.css +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js +7 -3
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.css +1 -1
- package/dist/cssm/components/Card/Card.css +2 -2
- package/dist/cssm/components/CardScroll/CardScroll.css +1 -1
- package/dist/cssm/components/Cell/Cell.css +1 -1
- package/dist/cssm/components/CellButton/CellButton.css +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.css +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.js +3 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +6 -3
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.css +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.css +1 -1
- package/dist/cssm/components/DateInput/DateInput.d.ts +1 -1
- package/dist/cssm/components/DateInput/DateInput.js +14 -2
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +6 -2
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/Epic/Epic.js +1 -1
- package/dist/cssm/components/Epic/Epic.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.css +3 -3
- package/dist/cssm/components/FormField/FormField.d.ts +15 -1
- package/dist/cssm/components/FormField/FormField.js +6 -2
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
- package/dist/cssm/components/Gradient/Gradient.css +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +12 -3
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +1 -1
- package/dist/cssm/components/Input/Input.css +1 -1
- package/dist/cssm/components/Input/Input.d.ts +1 -1
- package/dist/cssm/components/Input/Input.js +3 -1
- package/dist/cssm/components/Input/Input.js.map +1 -1
- package/dist/cssm/components/InputLike/InputLike.css +1 -1
- package/dist/cssm/components/InputLike/InputLikeDivider.css +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.css +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.js +3 -2
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +5 -4
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js +5 -3
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +2 -9
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.css +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js +2 -2
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js +5 -5
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js +1 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +1 -2
- package/dist/cssm/components/NativeSelect/NativeSelect.js +3 -4
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.css +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.css +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js +6 -4
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js +3 -2
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.css +1 -1
- package/dist/cssm/components/Radio/Radio.css +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.css +1 -1
- package/dist/cssm/components/Removable/Removable.css +1 -1
- package/dist/cssm/components/RichCell/RichCell.css +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +2 -0
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.css +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -1
- package/dist/cssm/components/Select/Select.d.ts +1 -1
- package/dist/cssm/components/Select/Select.js +1 -1
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +3 -3
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +3 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.css +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.css +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.d.ts +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.js +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.css +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.css +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.css +1 -1
- package/dist/cssm/components/Typography/Text/Text.js +1 -1
- package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.css +1 -1
- package/dist/cssm/hooks/useAdaptivity.d.ts +1 -0
- package/dist/cssm/hooks/useAdaptivity.js +13 -1
- package/dist/cssm/hooks/useAdaptivity.js.map +1 -1
- package/dist/cssm/hooks/useCalendar.d.ts +4 -3
- package/dist/cssm/hooks/useCalendar.js +15 -6
- package/dist/cssm/hooks/useCalendar.js.map +1 -1
- package/dist/cssm/index.d.ts +2 -1
- package/dist/cssm/index.js +2 -1
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/getNavId.js +1 -1
- package/dist/cssm/lib/getNavId.js.map +1 -1
- package/dist/cssm/lib/platform.js +26 -0
- package/dist/cssm/lib/platform.js.map +1 -1
- package/dist/cssm/styles/bright_light.css +1 -1
- package/dist/cssm/styles/components.css +18 -18
- package/dist/cssm/styles/constants.css +1 -1
- package/dist/cssm/styles/space_gray.css +1 -1
- package/dist/cssm/styles/themes.css +3 -3
- package/dist/cssm/styles/vkcom_dark.css +2 -2
- package/dist/cssm/styles/vkcom_light.css +1 -1
- package/dist/default_scheme.css +1 -1
- package/dist/default_scheme.css.map +1 -1
- package/dist/hooks/useAdaptivity.d.ts +1 -0
- package/dist/hooks/useAdaptivity.js +13 -1
- package/dist/hooks/useAdaptivity.js.map +1 -1
- package/dist/hooks/useCalendar.d.ts +4 -3
- package/dist/hooks/useCalendar.js +15 -6
- package/dist/hooks/useCalendar.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/getNavId.js +1 -1
- package/dist/lib/getNavId.js.map +1 -1
- package/dist/lib/platform.js +26 -0
- package/dist/lib/platform.js.map +1 -1
- package/dist/vkui.css +21 -21
- package/dist/vkui.css.map +1 -1
- package/jest.unit.config.js +1 -0
- package/package.json +5 -3
- package/postcss-custom-properties-fallback/__tests__/custom_properties.css +5 -0
- package/postcss-custom-properties-fallback/index.js +83 -0
- package/postcss-plugin-vk-sans/index.js +34 -27
- package/src/components/ActionSheet/ActionSheet.tsx +9 -7
- package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +1 -1
- package/src/components/ActionSheet/Readme.md +1 -0
- package/src/components/Alert/Alert.tsx +23 -4
- package/src/components/AppRoot/AppRoot.tsx +17 -2
- package/src/components/AppRoot/ScrollContext.ts +90 -2
- package/src/components/Button/Button.css +2 -0
- package/src/components/Calendar/Calendar.tsx +32 -3
- package/src/components/CalendarHeader/CalendarHeader.css +3 -0
- package/src/components/CalendarHeader/CalendarHeader.tsx +24 -2
- package/src/components/CalendarRange/CalendarRange.tsx +6 -0
- package/src/components/Card/Card.css +2 -1
- package/src/components/Cell/Cell.css +1 -1
- package/src/components/CellButton/CellButton.css +1 -1
- package/src/components/Checkbox/Checkbox.css +1 -1
- package/src/components/ChipsInput/ChipsInput.tsx +2 -0
- package/src/components/ConfigProvider/ConfigProvider.tsx +1 -1
- package/src/components/CustomSelect/CustomSelect.tsx +6 -3
- package/src/components/DateInput/DateInput.tsx +18 -0
- package/src/components/DateRangeInput/DateRangeInput.tsx +6 -0
- package/src/components/Epic/Epic.tsx +3 -1
- package/src/components/FixedLayout/FixedLayout.css +10 -0
- package/src/components/FormField/FormField.css +10 -0
- package/src/components/FormField/FormField.tsx +21 -1
- package/src/components/FormField/Readme.md +85 -19
- package/src/components/FormItem/FormItem.css +1 -0
- package/src/components/FormLayoutGroup/FormLayoutGroup.css +2 -1
- package/src/components/Gradient/Gradient.css +4 -2
- package/src/components/HorizontalScroll/HorizontalScroll.tsx +9 -3
- package/src/components/Input/Input.tsx +2 -0
- package/src/components/ModalCard/ModalCard.css +1 -1
- package/src/components/ModalCard/ModalCard.tsx +3 -8
- package/src/components/ModalCardBase/ModalCardBase.tsx +6 -10
- package/src/components/ModalPage/ModalPage.tsx +6 -9
- package/src/components/ModalPageHeader/ModalPageHeader.tsx +2 -6
- package/src/components/ModalRoot/ModalRoot.css +3 -2
- package/src/components/ModalRoot/ModalRoot.tsx +6 -2
- package/src/components/ModalRoot/ModalRootAdaptive.tsx +6 -9
- package/src/components/ModalRoot/Readme.md +1 -1
- package/src/components/ModalRoot/useModalManager.tsx +4 -1
- package/src/components/NativeSelect/NativeSelect.tsx +2 -3
- package/src/components/PanelHeader/PanelHeader.css +13 -13
- package/src/components/PanelHeader/PanelHeader.tsx +18 -17
- package/src/components/PanelHeader/Readme.md +2 -2
- package/src/components/PanelHeaderContext/PanelHeaderContext.tsx +3 -0
- package/src/components/PopoutRoot/PopoutRoot.tsx +3 -8
- package/src/components/Popper/Popper.css +14 -2
- package/src/components/Radio/Radio.css +1 -1
- package/src/components/RadioGroup/RadioGroup.css +1 -1
- package/src/components/Removable/Removable.css +2 -2
- package/src/components/RichCell/RichCell.css +1 -1
- package/src/components/ScreenSpinner/ScreenSpinner.tsx +3 -0
- package/src/components/Select/Select.tsx +1 -1
- package/src/components/SelectMimicry/SelectMimicry.tsx +5 -3
- package/src/components/SimpleCell/SimpleCell.css +1 -1
- package/src/components/Snackbar/Snackbar.css +6 -3
- package/src/components/SplitLayout/SplitLayout.css +3 -1
- package/src/components/Switch/Readme.md +12 -36
- package/src/components/TabbarItem/TabbarItem.tsx +1 -1
- package/src/components/Tooltip/Readme.md +35 -47
- package/src/components/Tooltip/Tooltip.tsx +2 -2
- package/src/components/Typography/Text/Text.tsx +4 -1
- package/src/hooks/useAdaptivity.ts +15 -0
- package/src/hooks/useCalendar.ts +25 -9
- package/src/index.ts +2 -1
- package/src/lib/getNavId.ts +1 -1
- package/src/lib/platform.ts +34 -0
- package/src/styles/bright_light.css +2 -0
- package/src/styles/constants.css +3 -2
- package/src/styles/space_gray.css +10 -8
- package/src/styles/vkcom_dark.css +6 -4
- package/src/styles/vkcom_light.css +4 -2
- package/src/testing/utils.tsx +5 -1
- package/tsconfig.json +1 -0
|
@@ -32,6 +32,8 @@ export interface CalendarRangeProps
|
|
|
32
32
|
| "nextMonthAriaLabel"
|
|
33
33
|
| "changeMonthAriaLabel"
|
|
34
34
|
| "changeYearAriaLabel"
|
|
35
|
+
| "prevMonthIcon"
|
|
36
|
+
| "nextMonthIcon"
|
|
35
37
|
>,
|
|
36
38
|
HasRootRef<HTMLDivElement> {
|
|
37
39
|
value?: Array<Date | null>;
|
|
@@ -70,6 +72,8 @@ export const CalendarRange: React.FC<CalendarRangeProps> = ({
|
|
|
70
72
|
changeMonthAriaLabel,
|
|
71
73
|
changeYearAriaLabel,
|
|
72
74
|
changeDayAriaLabel = "Изменить день",
|
|
75
|
+
prevMonthIcon,
|
|
76
|
+
nextMonthIcon,
|
|
73
77
|
...props
|
|
74
78
|
}) => {
|
|
75
79
|
const {
|
|
@@ -214,6 +218,7 @@ export const CalendarRange: React.FC<CalendarRangeProps> = ({
|
|
|
214
218
|
nextMonthAriaLabel={nextMonthAriaLabel}
|
|
215
219
|
changeMonthAriaLabel={changeMonthAriaLabel}
|
|
216
220
|
changeYearAriaLabel={changeYearAriaLabel}
|
|
221
|
+
prevMonthIcon={prevMonthIcon}
|
|
217
222
|
/>
|
|
218
223
|
<CalendarDays
|
|
219
224
|
viewDate={viewDate}
|
|
@@ -247,6 +252,7 @@ export const CalendarRange: React.FC<CalendarRangeProps> = ({
|
|
|
247
252
|
nextMonthAriaLabel={nextMonthAriaLabel}
|
|
248
253
|
changeMonthAriaLabel={changeMonthAriaLabel}
|
|
249
254
|
changeYearAriaLabel={changeYearAriaLabel}
|
|
255
|
+
nextMonthIcon={nextMonthIcon}
|
|
250
256
|
/>
|
|
251
257
|
<CalendarDays
|
|
252
258
|
viewDate={secondViewDate}
|
|
@@ -96,6 +96,7 @@ export const ChipsInput = <Option extends ChipsInputOption>(
|
|
|
96
96
|
getOptionLabel,
|
|
97
97
|
getNewOptionData,
|
|
98
98
|
renderChip,
|
|
99
|
+
before,
|
|
99
100
|
after,
|
|
100
101
|
inputAriaLabel,
|
|
101
102
|
...restProps
|
|
@@ -186,6 +187,7 @@ export const ChipsInput = <Option extends ChipsInputOption>(
|
|
|
186
187
|
className={className}
|
|
187
188
|
style={style}
|
|
188
189
|
disabled={restProps.disabled}
|
|
190
|
+
before={before}
|
|
189
191
|
after={after}
|
|
190
192
|
onClick={handleClick}
|
|
191
193
|
role="application"
|
|
@@ -96,7 +96,7 @@ const ConfigProvider: React.FC<ConfigProviderProps> = ({
|
|
|
96
96
|
target?.hasAttribute("scheme")
|
|
97
97
|
) {
|
|
98
98
|
warn(
|
|
99
|
-
'<body scheme>
|
|
99
|
+
'<body scheme> был установлен перед монтированием VKUI - вы не забыли scheme="inherit"?'
|
|
100
100
|
);
|
|
101
101
|
}
|
|
102
102
|
target?.setAttribute("scheme", normalizedScheme);
|
|
@@ -56,7 +56,7 @@ const warn = warnOnce("CustomSelect");
|
|
|
56
56
|
const checkOptionsValueType = (options: CustomSelectOptionInterface[]) => {
|
|
57
57
|
if (new Set(options.map((item) => typeof item.value)).size > 1) {
|
|
58
58
|
warn(
|
|
59
|
-
"
|
|
59
|
+
"Некоторые значения ваших опций имеют разные типы. onChange всегда возвращает строковый тип.",
|
|
60
60
|
"error"
|
|
61
61
|
);
|
|
62
62
|
}
|
|
@@ -463,8 +463,8 @@ class CustomSelectComponent extends React.Component<
|
|
|
463
463
|
if (options) {
|
|
464
464
|
if (process.env.NODE_ENV === "development") {
|
|
465
465
|
warn(
|
|
466
|
-
"
|
|
467
|
-
"
|
|
466
|
+
"Этот метод фильтрации устарел. Возвращаемое значение onInputChange будет " +
|
|
467
|
+
"проигнорировано в v5.0.0. Для фильтрации обновляйте props.options самостоятельно или используйте свойство filterFn."
|
|
468
468
|
);
|
|
469
469
|
}
|
|
470
470
|
this.setState({
|
|
@@ -637,6 +637,7 @@ class CustomSelectComponent extends React.Component<
|
|
|
637
637
|
render() {
|
|
638
638
|
const { opened, nativeSelectValue, options: stateOptions } = this.state;
|
|
639
639
|
const {
|
|
640
|
+
before,
|
|
640
641
|
searchable,
|
|
641
642
|
name,
|
|
642
643
|
className,
|
|
@@ -715,6 +716,7 @@ class CustomSelectComponent extends React.Component<
|
|
|
715
716
|
// TODO Нужно перестать пытаться превратить CustomSelect в select. Тогда эта проблема уйдёт.
|
|
716
717
|
// @ts-ignore
|
|
717
718
|
onClick={onClick}
|
|
719
|
+
before={before}
|
|
718
720
|
after={icon}
|
|
719
721
|
placeholder={restProps.placeholder}
|
|
720
722
|
/>
|
|
@@ -733,6 +735,7 @@ class CustomSelectComponent extends React.Component<
|
|
|
733
735
|
(dropdownOffsetDistance as number) > 0 &&
|
|
734
736
|
"CustomSelect__open--not-adjacent"
|
|
735
737
|
)}
|
|
738
|
+
before={before}
|
|
736
739
|
after={icon}
|
|
737
740
|
selectType={selectType}
|
|
738
741
|
>
|
|
@@ -40,6 +40,12 @@ export interface DateInputProps
|
|
|
40
40
|
| "changeDayAriaLabel"
|
|
41
41
|
| "showNeighboringMonth"
|
|
42
42
|
| "size"
|
|
43
|
+
| "viewDate"
|
|
44
|
+
| "onHeaderChange"
|
|
45
|
+
| "onNextMonth"
|
|
46
|
+
| "onPrevMonth"
|
|
47
|
+
| "prevMonthIcon"
|
|
48
|
+
| "nextMonthIcon"
|
|
43
49
|
>,
|
|
44
50
|
HasRootRef<HTMLDivElement> {
|
|
45
51
|
calendarPlacement?: Placement;
|
|
@@ -118,6 +124,12 @@ export const DateInput: React.FC<DateInputProps> = ({
|
|
|
118
124
|
changeMinutesAriaLabel = "Изменить минуту",
|
|
119
125
|
clearFieldAriaLabel = "Очистить поле",
|
|
120
126
|
showCalendarAriaLabel = "Показать календарь",
|
|
127
|
+
viewDate,
|
|
128
|
+
onHeaderChange,
|
|
129
|
+
onNextMonth,
|
|
130
|
+
onPrevMonth,
|
|
131
|
+
prevMonthIcon,
|
|
132
|
+
nextMonthIcon,
|
|
121
133
|
...props
|
|
122
134
|
}) => {
|
|
123
135
|
const daysRef = React.useRef<HTMLSpanElement>(null);
|
|
@@ -309,6 +321,12 @@ export const DateInput: React.FC<DateInputProps> = ({
|
|
|
309
321
|
changeDayAriaLabel={changeDayAriaLabel}
|
|
310
322
|
showNeighboringMonth={showNeighboringMonth}
|
|
311
323
|
size={size}
|
|
324
|
+
viewDate={viewDate}
|
|
325
|
+
onHeaderChange={onHeaderChange}
|
|
326
|
+
onNextMonth={onNextMonth}
|
|
327
|
+
onPrevMonth={onPrevMonth}
|
|
328
|
+
prevMonthIcon={prevMonthIcon}
|
|
329
|
+
nextMonthIcon={nextMonthIcon}
|
|
312
330
|
/>
|
|
313
331
|
</Popper>
|
|
314
332
|
)}
|
|
@@ -34,6 +34,8 @@ export interface DateRangeInputProps
|
|
|
34
34
|
| "changeMonthAriaLabel"
|
|
35
35
|
| "changeYearAriaLabel"
|
|
36
36
|
| "changeDayAriaLabel"
|
|
37
|
+
| "prevMonthIcon"
|
|
38
|
+
| "nextMonthIcon"
|
|
37
39
|
>,
|
|
38
40
|
HasRootRef<HTMLDivElement> {
|
|
39
41
|
calendarPlacement?: Placement;
|
|
@@ -118,6 +120,8 @@ export const DateRangeInput: React.FC<DateRangeInputProps> = ({
|
|
|
118
120
|
changeEndYearAriaLabel = "Изменить год окончания",
|
|
119
121
|
clearFieldAriaLabel = "Очистить поле",
|
|
120
122
|
showCalendarAriaLabel = "Показать календарь",
|
|
123
|
+
prevMonthIcon,
|
|
124
|
+
nextMonthIcon,
|
|
121
125
|
...props
|
|
122
126
|
}) => {
|
|
123
127
|
const daysStartRef = React.useRef<HTMLSpanElement>(null);
|
|
@@ -342,6 +346,8 @@ export const DateRangeInput: React.FC<DateRangeInputProps> = ({
|
|
|
342
346
|
changeMonthAriaLabel={changeMonthAriaLabel}
|
|
343
347
|
changeYearAriaLabel={changeYearAriaLabel}
|
|
344
348
|
changeDayAriaLabel={changeDayAriaLabel}
|
|
349
|
+
prevMonthIcon={prevMonthIcon}
|
|
350
|
+
nextMonthIcon={nextMonthIcon}
|
|
345
351
|
/>
|
|
346
352
|
</Popper>
|
|
347
353
|
)}
|
|
@@ -32,7 +32,9 @@ export const Epic: React.FC<EpicProps & AdaptivityContextInterface> = (
|
|
|
32
32
|
!tabbar &&
|
|
33
33
|
viewWidth < ViewWidth.SMALL_TABLET
|
|
34
34
|
) {
|
|
35
|
-
warn(
|
|
35
|
+
warn(
|
|
36
|
+
`Не рекомендуется использовать Epic без Tabbar при ширине окна меньше ${ViewWidth.SMALL_TABLET}px`
|
|
37
|
+
);
|
|
36
38
|
}
|
|
37
39
|
const story =
|
|
38
40
|
(React.Children.toArray(children).find(
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
.FixedLayout {
|
|
2
2
|
position: fixed;
|
|
3
3
|
box-sizing: border-box;
|
|
4
|
+
/**
|
|
5
|
+
* ⚠️ WARNING ⚠️
|
|
6
|
+
* `left: auto` решает следующие задачи:
|
|
7
|
+
* 1. При фиксированной ширине компонента позиционирует компонент по центру.
|
|
8
|
+
* 2. При использовании `SplitLayout` позиционирует компонент с права от `<SplitCol fixed />`.
|
|
9
|
+
*
|
|
10
|
+
* Подробности можно почитать здесь https://github.com/VKCOM/VKUI/pull/2472
|
|
11
|
+
*
|
|
12
|
+
* Единственное, есть проблема при срабатывании insets в landscape ориентации экрана (https://github.com/VKCOM/VKUI/issues/2422).
|
|
13
|
+
*/
|
|
4
14
|
left: auto;
|
|
5
15
|
z-index: 3;
|
|
6
16
|
padding-left: var(--safe-area-inset-left);
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
border-radius: inherit;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
.FormField__before,
|
|
14
15
|
.FormField__after {
|
|
15
16
|
flex-shrink: 0;
|
|
16
17
|
position: relative;
|
|
@@ -25,6 +26,14 @@
|
|
|
25
26
|
z-index: 2;
|
|
26
27
|
}
|
|
27
28
|
|
|
29
|
+
.FormField__before {
|
|
30
|
+
color: var(--vkui--color_icon_accent);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.FormField__after {
|
|
34
|
+
color: var(--icon_secondary, var(--vkui--color_icon_secondary));
|
|
35
|
+
}
|
|
36
|
+
|
|
28
37
|
.ChipsInput .FormField__after {
|
|
29
38
|
z-index: 3;
|
|
30
39
|
}
|
|
@@ -79,6 +88,7 @@
|
|
|
79
88
|
/**
|
|
80
89
|
* sizeY COMPACT
|
|
81
90
|
*/
|
|
91
|
+
.FormField--sizeY-compact .FormField__before,
|
|
82
92
|
.FormField--sizeY-compact .FormField__after {
|
|
83
93
|
min-width: 36px;
|
|
84
94
|
height: 36px;
|
|
@@ -9,7 +9,21 @@ import "./FormField.css";
|
|
|
9
9
|
|
|
10
10
|
export interface FormFieldProps {
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* Добавляет иконку слева.
|
|
13
|
+
*
|
|
14
|
+
* Рекомендации:
|
|
15
|
+
*
|
|
16
|
+
* - Используйте следующие размеры иконок `12` | `16` | `20` | `24` | `28`.
|
|
17
|
+
* - Используйте [IconButton](#/IconButton), если вам нужна кликабельная иконка.
|
|
18
|
+
*/
|
|
19
|
+
before?: React.ReactNode;
|
|
20
|
+
/**
|
|
21
|
+
* Добавляет иконку справа.
|
|
22
|
+
*
|
|
23
|
+
* Рекомендации:
|
|
24
|
+
*
|
|
25
|
+
* - Используйте следующие размеры иконок `12` | `16` | `20` | `24` | `28`.
|
|
26
|
+
* - Используйте [IconButton](#/IconButton), если вам нужна кликабельная иконка.
|
|
13
27
|
*/
|
|
14
28
|
after?: React.ReactNode;
|
|
15
29
|
}
|
|
@@ -26,6 +40,7 @@ export const FormField: React.FC<FormFieldOwnProps> = ({
|
|
|
26
40
|
Component = "div",
|
|
27
41
|
children,
|
|
28
42
|
getRootRef,
|
|
43
|
+
before,
|
|
29
44
|
after,
|
|
30
45
|
disabled,
|
|
31
46
|
...restProps
|
|
@@ -57,6 +72,11 @@ export const FormField: React.FC<FormFieldOwnProps> = ({
|
|
|
57
72
|
disabled && "FormField--disabled"
|
|
58
73
|
)}
|
|
59
74
|
>
|
|
75
|
+
{hasReactNode(before) && (
|
|
76
|
+
<div role="presentation" vkuiClass="FormField__before">
|
|
77
|
+
{before}
|
|
78
|
+
</div>
|
|
79
|
+
)}
|
|
60
80
|
{children}
|
|
61
81
|
{hasReactNode(after) && (
|
|
62
82
|
<div role="presentation" vkuiClass="FormField__after">
|
|
@@ -1,6 +1,90 @@
|
|
|
1
1
|
Компонент-оболочка для элементов форм ([Input](#/Input), [Select](#/Select), [Textarea](#/Textarea) и другие).
|
|
2
2
|
|
|
3
|
-
```jsx
|
|
3
|
+
```jsx { "props": { "layout": false, "iframe": false } }
|
|
4
|
+
const Example = () => {
|
|
5
|
+
const [sizeY, setSizeY] = useState("regular");
|
|
6
|
+
const [before, setBefore] = useState(<Icon24WalletOutline />);
|
|
7
|
+
const [after, setAfter] = useState(<Icon24ChevronUp />);
|
|
8
|
+
const [disabled, setDisabled] = useState(false);
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<div style={rootContainerStyles}>
|
|
12
|
+
<div style={demoContainerStyles}>
|
|
13
|
+
<AdaptivityProvider sizeY={sizeY}>
|
|
14
|
+
<FormLayout>
|
|
15
|
+
<FormItem>
|
|
16
|
+
<FormField before={before} after={after} disabled={disabled}>
|
|
17
|
+
<CustomInput />
|
|
18
|
+
</FormField>
|
|
19
|
+
</FormItem>
|
|
20
|
+
</FormLayout>
|
|
21
|
+
</AdaptivityProvider>
|
|
22
|
+
</div>
|
|
23
|
+
<div style={propsContainerStyles}>
|
|
24
|
+
<FormItem top="sizeY">
|
|
25
|
+
<Select
|
|
26
|
+
value={sizeY}
|
|
27
|
+
onChange={(e) => setSizeY(e.target.value)}
|
|
28
|
+
options={[
|
|
29
|
+
{ label: "compact", value: "compact" },
|
|
30
|
+
{ label: "regular", value: "regular" },
|
|
31
|
+
]}
|
|
32
|
+
/>
|
|
33
|
+
</FormItem>
|
|
34
|
+
<FormItem top="prop[before]">
|
|
35
|
+
<Checkbox
|
|
36
|
+
description="Icon24WalletOutline for example"
|
|
37
|
+
checked={!!before}
|
|
38
|
+
onChange={(e) =>
|
|
39
|
+
e.target.checked
|
|
40
|
+
? setBefore(<Icon24WalletOutline />)
|
|
41
|
+
: setBefore(undefined)
|
|
42
|
+
}
|
|
43
|
+
>
|
|
44
|
+
before
|
|
45
|
+
</Checkbox>
|
|
46
|
+
</FormItem>
|
|
47
|
+
<FormItem top="prop[after]">
|
|
48
|
+
<Checkbox
|
|
49
|
+
description="Icon24ChevronUp for example"
|
|
50
|
+
checked={!!after}
|
|
51
|
+
onChange={(e) =>
|
|
52
|
+
e.target.checked
|
|
53
|
+
? setAfter(<Icon24ChevronUp />)
|
|
54
|
+
: setAfter(undefined)
|
|
55
|
+
}
|
|
56
|
+
>
|
|
57
|
+
after
|
|
58
|
+
</Checkbox>
|
|
59
|
+
</FormItem>
|
|
60
|
+
<FormItem top="prop[disabled]">
|
|
61
|
+
<Checkbox
|
|
62
|
+
checked={disabled}
|
|
63
|
+
onChange={(e) => setDisabled(e.target.checked)}
|
|
64
|
+
>
|
|
65
|
+
disabled
|
|
66
|
+
</Checkbox>
|
|
67
|
+
</FormItem>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
);
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const rootContainerStyles = {
|
|
74
|
+
display: "flex",
|
|
75
|
+
flexDirection: "row-reverse",
|
|
76
|
+
flexWrap: "wrap",
|
|
77
|
+
justifyContent: "center",
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const demoContainerStyles = {
|
|
81
|
+
flexGrow: 2,
|
|
82
|
+
paddingTop: 24,
|
|
83
|
+
paddingBottom: 24,
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const propsContainerStyles = { minWidth: 200 };
|
|
87
|
+
|
|
4
88
|
const CustomInput = () => {
|
|
5
89
|
const style = {
|
|
6
90
|
position: "relative",
|
|
@@ -20,23 +104,5 @@ const CustomInput = () => {
|
|
|
20
104
|
return <input type="text" style={style} placeholder="Кастомный инпут" />;
|
|
21
105
|
};
|
|
22
106
|
|
|
23
|
-
const Example = () => (
|
|
24
|
-
<View activePanel="custom-field">
|
|
25
|
-
<Panel id="custom-field">
|
|
26
|
-
<PanelHeader>FormField</PanelHeader>
|
|
27
|
-
|
|
28
|
-
<Group>
|
|
29
|
-
<FormLayout>
|
|
30
|
-
<FormItem>
|
|
31
|
-
<FormField>
|
|
32
|
-
<CustomInput />
|
|
33
|
-
</FormField>
|
|
34
|
-
</FormItem>
|
|
35
|
-
</FormLayout>
|
|
36
|
-
</Group>
|
|
37
|
-
</Panel>
|
|
38
|
-
</View>
|
|
39
|
-
);
|
|
40
|
-
|
|
41
107
|
<Example />;
|
|
42
108
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.FormLayoutGroup--horizontal {
|
|
2
2
|
display: flex;
|
|
3
|
-
padding: 12px var(--
|
|
3
|
+
padding: 12px var(--vkui--size_base_padding_horizontal--regular);
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
.FormLayoutGroup__removable {
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* iOS
|
|
14
|
+
* TODO: v5 удалить
|
|
14
15
|
*/
|
|
15
16
|
.FormLayoutGroup--ios {
|
|
16
17
|
--formitem_padding: 12px;
|
|
@@ -40,7 +40,8 @@
|
|
|
40
40
|
);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
body[scheme="space_gray"] .Gradient--md-tint.Gradient--to-top
|
|
43
|
+
body[scheme="space_gray"] .Gradient--md-tint.Gradient--to-top,
|
|
44
|
+
body[scheme="vkcom_dark"] .Gradient--md-tint.Gradient--to-top {
|
|
44
45
|
background: linear-gradient(
|
|
45
46
|
to top,
|
|
46
47
|
#232324,
|
|
@@ -61,7 +62,8 @@ body[scheme="space_gray"] .Gradient--md-tint.Gradient--to-top {
|
|
|
61
62
|
);
|
|
62
63
|
}
|
|
63
64
|
|
|
64
|
-
body[scheme="space_gray"] .Gradient--md-tint.Gradient--to-bottom
|
|
65
|
+
body[scheme="space_gray"] .Gradient--md-tint.Gradient--to-bottom,
|
|
66
|
+
body[scheme="vkcom_dark"] .Gradient--md-tint.Gradient--to-bottom {
|
|
65
67
|
background: linear-gradient(
|
|
66
68
|
to bottom,
|
|
67
69
|
#232324,
|
|
@@ -48,6 +48,12 @@ function now() {
|
|
|
48
48
|
return performance && performance.now ? performance.now() : Date.now();
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Округляем el.scrollLeft
|
|
53
|
+
* https://github.com/VKCOM/VKUI/pull/2445
|
|
54
|
+
*/
|
|
55
|
+
const roundUpElementScrollLeft = (el: HTMLElement) => Math.ceil(el.scrollLeft);
|
|
56
|
+
|
|
51
57
|
/**
|
|
52
58
|
* Код анимации скрола, на основе полифила: https://github.com/iamdustan/smoothscroll
|
|
53
59
|
* Константа взята из полифила (468), на дизайн-ревью уточнили до 250
|
|
@@ -74,7 +80,7 @@ function doScroll({
|
|
|
74
80
|
*/
|
|
75
81
|
const maxLeft = initialScrollWidth - scrollElement.offsetWidth;
|
|
76
82
|
|
|
77
|
-
let startLeft = scrollElement
|
|
83
|
+
let startLeft = roundUpElementScrollLeft(scrollElement);
|
|
78
84
|
let endLeft = getScrollPosition(startLeft);
|
|
79
85
|
|
|
80
86
|
onScrollStart();
|
|
@@ -100,7 +106,7 @@ function doScroll({
|
|
|
100
106
|
const currentLeft = startLeft + (endLeft - startLeft) * value;
|
|
101
107
|
scrollElement.scrollLeft = Math.ceil(currentLeft);
|
|
102
108
|
|
|
103
|
-
if (scrollElement
|
|
109
|
+
if (roundUpElementScrollLeft(scrollElement) !== Math.max(0, endLeft)) {
|
|
104
110
|
requestAnimationFrame(scroll);
|
|
105
111
|
return;
|
|
106
112
|
}
|
|
@@ -179,7 +185,7 @@ const HorizontalScrollComponent: React.FC<HorizontalScrollProps> = ({
|
|
|
179
185
|
|
|
180
186
|
setCanScrollLeft(scrollElement.scrollLeft > 0);
|
|
181
187
|
setCanScrollRight(
|
|
182
|
-
scrollElement
|
|
188
|
+
roundUpElementScrollLeft(scrollElement) + scrollElement.offsetWidth <
|
|
183
189
|
scrollElement.scrollWidth
|
|
184
190
|
);
|
|
185
191
|
}
|
|
@@ -23,6 +23,7 @@ const InputComponent: React.FunctionComponent<InputProps> = ({
|
|
|
23
23
|
getRootRef,
|
|
24
24
|
sizeY,
|
|
25
25
|
style,
|
|
26
|
+
before,
|
|
26
27
|
after,
|
|
27
28
|
...restProps
|
|
28
29
|
}: InputProps) => {
|
|
@@ -37,6 +38,7 @@ const InputComponent: React.FunctionComponent<InputProps> = ({
|
|
|
37
38
|
style={style}
|
|
38
39
|
className={className}
|
|
39
40
|
getRootRef={getRootRef}
|
|
41
|
+
before={before}
|
|
40
42
|
after={after}
|
|
41
43
|
disabled={restProps.disabled}
|
|
42
44
|
>
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
box-sizing: border-box;
|
|
3
3
|
position: absolute;
|
|
4
4
|
top: 0;
|
|
5
|
+
padding: 8px;
|
|
5
6
|
left: 0;
|
|
6
7
|
width: 100%;
|
|
7
8
|
height: 100%;
|
|
@@ -14,7 +15,6 @@
|
|
|
14
15
|
width: 100%;
|
|
15
16
|
margin-left: auto;
|
|
16
17
|
margin-right: auto;
|
|
17
|
-
padding: 8px;
|
|
18
18
|
transform: translateY(100%);
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -3,11 +3,7 @@ import { getClassName } from "../../helpers/getClassName";
|
|
|
3
3
|
import { classNames } from "../../lib/classNames";
|
|
4
4
|
import { withPlatform } from "../../hoc/withPlatform";
|
|
5
5
|
import { HasPlatform } from "../../types";
|
|
6
|
-
import {
|
|
7
|
-
withAdaptivity,
|
|
8
|
-
ViewHeight,
|
|
9
|
-
ViewWidth,
|
|
10
|
-
} from "../../hoc/withAdaptivity";
|
|
6
|
+
import { withAdaptivity } from "../../hoc/withAdaptivity";
|
|
11
7
|
import ModalRootContext, {
|
|
12
8
|
useModalRegistry,
|
|
13
9
|
} from "../ModalRoot/ModalRootContext";
|
|
@@ -22,6 +18,7 @@ import {
|
|
|
22
18
|
AdaptivityContextInterface,
|
|
23
19
|
AdaptivityProps,
|
|
24
20
|
} from "../AdaptivityProvider/AdaptivityContext";
|
|
21
|
+
import { useAdaptivityIsDesktop } from "../../hooks/useAdaptivity";
|
|
25
22
|
import "./ModalCard.css";
|
|
26
23
|
|
|
27
24
|
export interface ModalCardProps
|
|
@@ -51,9 +48,7 @@ const ModalCard: React.FC<ModalCardProps & AdaptivityContextInterface> = (
|
|
|
51
48
|
...restProps
|
|
52
49
|
} = props;
|
|
53
50
|
|
|
54
|
-
const isDesktop =
|
|
55
|
-
viewWidth >= ViewWidth.SMALL_TABLET &&
|
|
56
|
-
(hasMouse || viewHeight >= ViewHeight.MEDIUM);
|
|
51
|
+
const isDesktop = useAdaptivityIsDesktop();
|
|
57
52
|
|
|
58
53
|
const modalContext = React.useContext(ModalRootContext);
|
|
59
54
|
const { refs } = useModalRegistry(getNavId(props, warn), ModalType.CARD);
|
|
@@ -5,18 +5,15 @@ import Headline from "../Typography/Headline/Headline";
|
|
|
5
5
|
import { classNames } from "../../lib/classNames";
|
|
6
6
|
import { getClassName } from "../../helpers/getClassName";
|
|
7
7
|
import { usePlatform } from "../../hooks/usePlatform";
|
|
8
|
-
import {
|
|
9
|
-
ViewHeight,
|
|
10
|
-
ViewWidth,
|
|
11
|
-
withAdaptivity,
|
|
12
|
-
} from "../../hoc/withAdaptivity";
|
|
8
|
+
import { ViewWidth, withAdaptivity } from "../../hoc/withAdaptivity";
|
|
13
9
|
import { HasRootRef } from "../../types";
|
|
14
10
|
import { PanelHeaderButton } from "../PanelHeaderButton/PanelHeaderButton";
|
|
15
|
-
import { ANDROID, IOS } from "../../lib/platform";
|
|
11
|
+
import { ANDROID, IOS, Platform } from "../../lib/platform";
|
|
16
12
|
import ModalDismissButton from "../ModalDismissButton/ModalDismissButton";
|
|
17
13
|
import { Icon24Dismiss } from "@vkontakte/icons";
|
|
18
14
|
import { useKeyboard } from "../../hooks/useKeyboard";
|
|
19
15
|
import { AdaptivityContextInterface } from "../AdaptivityProvider/AdaptivityContext";
|
|
16
|
+
import { useAdaptivityIsDesktop } from "../../hooks/useAdaptivity";
|
|
20
17
|
import "./ModalCardBase.css";
|
|
21
18
|
|
|
22
19
|
export interface ModalCardBaseProps
|
|
@@ -77,12 +74,11 @@ export const ModalCardBase = withAdaptivity<
|
|
|
77
74
|
...restProps
|
|
78
75
|
}) => {
|
|
79
76
|
const platform = usePlatform();
|
|
80
|
-
const isDesktop =
|
|
81
|
-
viewWidth >= ViewWidth.SMALL_TABLET &&
|
|
82
|
-
(hasMouse || viewHeight >= ViewHeight.MEDIUM);
|
|
77
|
+
const isDesktop = useAdaptivityIsDesktop();
|
|
83
78
|
const isSoftwareKeyboardOpened = useKeyboard().isOpened;
|
|
84
79
|
|
|
85
|
-
const canShowCloseBtn =
|
|
80
|
+
const canShowCloseBtn =
|
|
81
|
+
viewWidth >= ViewWidth.SMALL_TABLET || platform === Platform.VKCOM;
|
|
86
82
|
const canShowCloseBtnIos = platform === IOS && !canShowCloseBtn;
|
|
87
83
|
|
|
88
84
|
return (
|
|
@@ -7,11 +7,7 @@ import {
|
|
|
7
7
|
} from "../ModalRoot/ModalRootContext";
|
|
8
8
|
import { usePlatform } from "../../hooks/usePlatform";
|
|
9
9
|
import { useOrientationChange } from "../../hooks/useOrientationChange";
|
|
10
|
-
import {
|
|
11
|
-
withAdaptivity,
|
|
12
|
-
ViewHeight,
|
|
13
|
-
ViewWidth,
|
|
14
|
-
} from "../../hoc/withAdaptivity";
|
|
10
|
+
import { withAdaptivity, ViewWidth } from "../../hoc/withAdaptivity";
|
|
15
11
|
import {
|
|
16
12
|
AdaptivityContextInterface,
|
|
17
13
|
AdaptivityProps,
|
|
@@ -21,6 +17,8 @@ import { multiRef } from "../../lib/utils";
|
|
|
21
17
|
import { ModalType } from "../ModalRoot/types";
|
|
22
18
|
import { getNavId, NavIdProps } from "../../lib/getNavId";
|
|
23
19
|
import { warnOnce } from "../../lib/warnOnce";
|
|
20
|
+
import { Platform } from "../../lib/platform";
|
|
21
|
+
import { useAdaptivityIsDesktop } from "../../hooks/useAdaptivity";
|
|
24
22
|
import "./ModalPage.css";
|
|
25
23
|
|
|
26
24
|
export interface ModalPageProps
|
|
@@ -91,10 +89,9 @@ const ModalPage: React.FC<ModalPageProps & AdaptivityContextInterface> = (
|
|
|
91
89
|
updateModalHeight,
|
|
92
90
|
]);
|
|
93
91
|
|
|
94
|
-
const isDesktop =
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
const canShowCloseBtn = viewWidth >= ViewWidth.SMALL_TABLET;
|
|
92
|
+
const isDesktop = useAdaptivityIsDesktop();
|
|
93
|
+
const canShowCloseBtn =
|
|
94
|
+
viewWidth >= ViewWidth.SMALL_TABLET || platform === Platform.VKCOM;
|
|
98
95
|
|
|
99
96
|
const modalContext = React.useContext(ModalRootContext);
|
|
100
97
|
const { refs } = useModalRegistry(getNavId(props, warn), ModalType.PAGE);
|