@vkontakte/vkui 5.1.0 → 5.2.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/LICENSE +25 -0
- package/README.md +118 -0
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +1 -1
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRoot.js +7 -4
- package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cjs/components/Avatar/Avatar.d.ts +1 -1
- package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts +1 -1
- package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +5 -4
- package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js +7 -4
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.d.ts +3 -2
- package/dist/cjs/components/Checkbox/Checkbox.js +12 -2
- package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +0 -4
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/ContentCard/ContentCard.js +2 -1
- package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +11 -7
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -3
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +21 -72
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.d.ts +3 -2
- package/dist/cjs/components/DateInput/DateInput.js +3 -3
- package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts +2 -2
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js +3 -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/FixedLayout/FixedLayout.js +2 -2
- package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cjs/components/FormField/FormField.js +6 -10
- package/dist/cjs/components/FormField/FormField.js.map +1 -1
- package/dist/cjs/components/IconButton/IconButton.js +9 -0
- package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
- package/dist/cjs/components/ModalCard/ModalCard.d.ts +1 -1
- package/dist/cjs/components/ModalCard/ModalCard.js +4 -2
- package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.d.ts +5 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js +9 -2
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.d.ts +2 -6
- package/dist/cjs/components/ModalPage/ModalPage.js +13 -7
- package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js +1 -2
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.d.ts +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.js +2 -2
- package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cjs/components/PanelHeader/PanelHeader.js +18 -4
- package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +11 -2
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cjs/components/Popover/Popover.js +4 -1
- package/dist/cjs/components/Popover/Popover.js.map +1 -1
- package/dist/cjs/components/Popper/Popper.d.ts +12 -9
- package/dist/cjs/components/Popper/Popper.js +92 -119
- package/dist/cjs/components/Popper/Popper.js.map +1 -1
- package/dist/cjs/components/PopperArrow/PopperArrow.d.ts +15 -5
- package/dist/cjs/components/PopperArrow/PopperArrow.js +44 -17
- package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/cjs/components/Progress/Progress.js +3 -1
- package/dist/cjs/components/Progress/Progress.js.map +1 -1
- package/dist/cjs/components/Root/Root.js +2 -2
- package/dist/cjs/components/Root/Root.js.map +1 -1
- package/dist/cjs/components/Select/Select.d.ts +1 -5
- package/dist/cjs/components/Select/Select.js +13 -41
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.d.ts +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js +2 -2
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cjs/components/SelectTypography/SelectTypography.d.ts +11 -0
- package/dist/cjs/components/SelectTypography/SelectTypography.js +48 -0
- package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -0
- package/dist/cjs/components/Slider/Slider.d.ts +1 -1
- package/dist/cjs/components/Slider/Slider.js +4 -3
- package/dist/cjs/components/Slider/Slider.js.map +1 -1
- package/dist/cjs/components/Spacing/Spacing.js +2 -1
- package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitCol.d.ts +0 -6
- package/dist/cjs/components/SplitCol/SplitCol.js +3 -11
- package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitColContext.d.ts +7 -0
- package/dist/cjs/components/SplitCol/SplitColContext.js +18 -0
- package/dist/cjs/components/SplitCol/SplitColContext.js.map +1 -0
- package/dist/cjs/components/Switch/Switch.js +2 -3
- package/dist/cjs/components/Switch/Switch.js.map +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js +9 -0
- package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.js +6 -15
- package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.d.ts +3 -3
- package/dist/cjs/components/Tooltip/Tooltip.js +116 -151
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/components/Touch/Touch.js +4 -4
- package/dist/cjs/components/Touch/Touch.js.map +1 -1
- package/dist/cjs/components/View/View.js +2 -2
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/components/View/ViewInfinite.d.ts +1 -1
- package/dist/cjs/components/View/ViewInfinite.js +2 -2
- package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +10 -8
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cjs/index.d.ts +37 -30
- package/dist/cjs/index.js +13 -13
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/floating/adapters.d.ts +2 -0
- package/dist/cjs/lib/floating/adapters.js +63 -0
- package/dist/cjs/lib/floating/adapters.js.map +1 -0
- package/dist/cjs/lib/floating/functions.d.ts +10 -0
- package/dist/cjs/lib/floating/functions.js +36 -0
- package/dist/cjs/lib/floating/functions.js.map +1 -0
- package/dist/cjs/lib/floating/index.d.ts +4 -0
- package/dist/cjs/lib/floating/index.js +75 -0
- package/dist/cjs/lib/floating/index.js.map +1 -0
- package/dist/cjs/lib/floating/types.d.ts +4 -0
- package/dist/cjs/lib/floating/types.js +6 -0
- package/dist/cjs/lib/floating/types.js.map +1 -0
- package/dist/cjs/lib/useIsomorphicLayoutEffect.d.ts +1 -1
- package/dist/cjs/lib/warnOnce.d.ts +7 -0
- package/dist/cjs/lib/warnOnce.js +14 -0
- package/dist/cjs/lib/warnOnce.js.map +1 -1
- package/dist/cjs/shared/breakpoints.d.ts +2 -2
- package/dist/cjs/shared/breakpoints.js +12 -13
- package/dist/cjs/shared/breakpoints.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.js +7 -4
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/Avatar/Avatar.d.ts +1 -1
- package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts +1 -1
- package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +5 -4
- package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js +7 -4
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +3 -2
- package/dist/components/Checkbox/Checkbox.js +12 -2
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js +0 -4
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.js +2 -1
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +12 -8
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -3
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +22 -73
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts +3 -2
- package/dist/components/DateInput/DateInput.js +3 -3
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +2 -2
- package/dist/components/DateRangeInput/DateRangeInput.js +3 -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/FixedLayout/FixedLayout.js +1 -1
- package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/components/FormField/FormField.js +6 -10
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/IconButton/IconButton.js +9 -0
- package/dist/components/IconButton/IconButton.js.map +1 -1
- package/dist/components/ModalCard/ModalCard.d.ts +1 -1
- package/dist/components/ModalCard/ModalCard.js +4 -2
- package/dist/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.d.ts +5 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +9 -2
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts +2 -6
- package/dist/components/ModalPage/ModalPage.js +13 -7
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +1 -2
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.d.ts +1 -1
- package/dist/components/NativeSelect/NativeSelect.js +1 -1
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.js +18 -4
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js +11 -2
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/Popover/Popover.js +4 -1
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popper/Popper.d.ts +12 -9
- package/dist/components/Popper/Popper.js +93 -120
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/PopperArrow/PopperArrow.d.ts +15 -5
- package/dist/components/PopperArrow/PopperArrow.js +40 -15
- package/dist/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/components/Progress/Progress.js +3 -1
- package/dist/components/Progress/Progress.js.map +1 -1
- package/dist/components/Root/Root.js +1 -1
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/Select/Select.d.ts +1 -5
- package/dist/components/Select/Select.js +12 -39
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.d.ts +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SelectTypography/SelectTypography.d.ts +11 -0
- package/dist/components/SelectTypography/SelectTypography.js +39 -0
- package/dist/components/SelectTypography/SelectTypography.js.map +1 -0
- package/dist/components/Slider/Slider.d.ts +1 -1
- package/dist/components/Slider/Slider.js +4 -3
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/Spacing/Spacing.js +2 -1
- package/dist/components/Spacing/Spacing.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.d.ts +0 -6
- package/dist/components/SplitCol/SplitCol.js +1 -7
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SplitCol/SplitColContext.d.ts +7 -0
- package/dist/components/SplitCol/SplitColContext.js +9 -0
- package/dist/components/SplitCol/SplitColContext.js.map +1 -0
- package/dist/components/Switch/Switch.js +2 -3
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.js +9 -0
- package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/components/Tabs/Tabs.js +6 -15
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +3 -3
- package/dist/components/Tooltip/Tooltip.js +116 -151
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Touch/Touch.js +4 -4
- package/dist/components/Touch/Touch.js.map +1 -1
- package/dist/components/View/View.js +1 -1
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.d.ts +1 -1
- package/dist/components/View/ViewInfinite.js +1 -1
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.js +11 -9
- package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/components.css +142 -2
- package/dist/components.css.map +1 -1
- package/dist/components.js.tmp +61921 -4
- package/dist/cssm/components/ActionSheet/ActionSheet.module.css +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.module.css +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +7 -4
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.module.css +1 -1
- package/dist/cssm/components/Avatar/Avatar.d.ts +1 -1
- package/dist/cssm/components/Avatar/Avatar.module.css +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.module.css +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +5 -4
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/cssm/components/Badge/Badge.module.css +1 -1
- package/dist/cssm/components/Banner/Banner.module.css +1 -1
- package/dist/cssm/components/BaseGallery/BaseGallery.module.css +1 -1
- package/dist/cssm/components/Button/Button.module.css +1 -1
- package/dist/cssm/components/ButtonGroup/ButtonGroup.module.css +1 -1
- package/dist/cssm/components/Calendar/Calendar.module.css +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.module.css +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.module.css +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.module.css +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.module.css +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.module.css +1 -1
- package/dist/cssm/components/Card/Card.module.css +2 -2
- package/dist/cssm/components/CardGrid/CardGrid.module.css +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.module.css +1 -1
- package/dist/cssm/components/Cell/Cell.module.css +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +7 -4
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.module.css +1 -1
- package/dist/cssm/components/Cell/CellDragger/CellDragger.module.css +1 -1
- package/dist/cssm/components/CellButton/CellButton.module.css +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.d.ts +3 -2
- package/dist/cssm/components/Checkbox/Checkbox.js +12 -2
- package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.module.css +1 -1
- package/dist/cssm/components/Chip/Chip.module.css +1 -1
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +0 -4
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.module.css +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.js +2 -1
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.module.css +1 -1
- package/dist/cssm/components/Counter/Counter.module.css +1 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +12 -8
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.module.css +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -3
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +22 -73
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.module.css +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +1 -1
- package/dist/cssm/components/DateInput/DateInput.d.ts +3 -2
- package/dist/cssm/components/DateInput/DateInput.js +4 -3
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.module.css +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +2 -2
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +3 -2
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.module.css +1 -1
- package/dist/cssm/components/Div/Div.module.css +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/FixedLayout/FixedLayout.js +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.module.css +1 -1
- package/dist/cssm/components/FocusVisible/FocusVisible.module.css +1 -1
- package/dist/cssm/components/Footer/Footer.module.css +1 -1
- package/dist/cssm/components/FormField/FormField.js +6 -10
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.module.css +1 -1
- package/dist/cssm/components/FormItem/FormItem.module.css +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +1 -1
- package/dist/cssm/components/FormStatus/FormStatus.module.css +1 -1
- package/dist/cssm/components/Gradient/Gradient.module.css +1 -1
- package/dist/cssm/components/Group/Group.module.css +1 -1
- package/dist/cssm/components/Header/Header.module.css +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.module.css +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.module.css +1 -1
- package/dist/cssm/components/IconButton/IconButton.js +9 -0
- package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
- package/dist/cssm/components/IconButton/IconButton.module.css +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.module.css +1 -1
- package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +1 -1
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +1 -1
- package/dist/cssm/components/InfoRow/InfoRow.module.css +1 -1
- package/dist/cssm/components/Input/Input.module.css +1 -1
- package/dist/cssm/components/InputLike/InputLike.module.css +1 -1
- package/dist/cssm/components/InputLike/InputLikeDivider.module.css +1 -1
- package/dist/cssm/components/Link/Link.module.css +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.d.ts +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.js +4 -2
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.module.css +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.d.ts +5 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +9 -2
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +1 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.module.css +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.d.ts +2 -6
- package/dist/cssm/components/ModalPage/ModalPage.js +13 -7
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.module.css +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js +1 -2
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.module.css +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.module.css +1 -1
- package/dist/cssm/components/Panel/Panel.module.css +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js +18 -4
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.module.css +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +11 -2
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +1 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.module.css +1 -1
- package/dist/cssm/components/Placeholder/Placeholder.module.css +1 -1
- package/dist/cssm/components/PopoutRoot/PopoutRoot.module.css +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.module.css +1 -1
- package/dist/cssm/components/Popover/Popover.js +4 -1
- package/dist/cssm/components/Popover/Popover.js.map +1 -1
- package/dist/cssm/components/Popover/Popover.module.css +1 -1
- package/dist/cssm/components/Popper/Popper.d.ts +12 -9
- package/dist/cssm/components/Popper/Popper.js +93 -120
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.module.css +1 -1
- package/dist/cssm/components/PopperArrow/PopperArrow.d.ts +15 -5
- package/dist/cssm/components/PopperArrow/PopperArrow.js +40 -15
- package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/cssm/components/PopperArrow/PopperArrow.module.css +1 -1
- package/dist/cssm/components/Progress/Progress.js +3 -1
- package/dist/cssm/components/Progress/Progress.js.map +1 -1
- package/dist/cssm/components/Progress/Progress.module.css +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.module.css +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +1 -1
- package/dist/cssm/components/Radio/Radio.module.css +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.module.css +1 -1
- package/dist/cssm/components/Removable/Removable.module.css +1 -1
- package/dist/cssm/components/RichCell/RichCell.module.css +1 -1
- package/dist/cssm/components/RichTooltip/RichTooltip.module.css +1 -1
- package/dist/cssm/components/Root/Root.js +1 -1
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/Root/Root.module.css +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +1 -1
- package/dist/cssm/components/Search/Search.module.css +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.module.css +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +1 -1
- package/dist/cssm/components/Select/Select.d.ts +1 -5
- package/dist/cssm/components/Select/Select.js +12 -39
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/Select/Select.module.css +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SelectTypography/SelectTypography.d.ts +11 -0
- package/dist/cssm/components/SelectTypography/SelectTypography.js +40 -0
- package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -0
- package/dist/cssm/components/SelectTypography/SelectTypography.module.css +1 -0
- package/dist/cssm/components/Separator/Separator.module.css +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.module.css +1 -1
- package/dist/cssm/components/Slider/Slider.d.ts +1 -1
- package/dist/cssm/components/Slider/Slider.js +4 -3
- package/dist/cssm/components/Slider/Slider.js.map +1 -1
- package/dist/cssm/components/Slider/Slider.module.css +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.module.css +1 -1
- package/dist/cssm/components/Spacing/Spacing.js +2 -1
- package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
- package/dist/cssm/components/Spacing/Spacing.module.css +1 -1
- package/dist/cssm/components/Spinner/Spinner.module.css +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.d.ts +0 -6
- package/dist/cssm/components/SplitCol/SplitCol.js +1 -7
- package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.module.css +1 -1
- package/dist/cssm/components/SplitCol/SplitColContext.d.ts +7 -0
- package/dist/cssm/components/SplitCol/SplitColContext.js +9 -0
- package/dist/cssm/components/SplitCol/SplitColContext.js.map +1 -0
- package/dist/cssm/components/SplitLayout/SplitLayout.module.css +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.module.css +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.module.css +1 -1
- package/dist/cssm/components/Switch/Switch.js +2 -3
- package/dist/cssm/components/Switch/Switch.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.module.css +1 -1
- package/dist/cssm/components/Tabbar/Tabbar.module.css +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js +9 -0
- package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.module.css +1 -1
- package/dist/cssm/components/Tabs/Tabs.js +6 -15
- package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
- package/dist/cssm/components/Tabs/Tabs.module.css +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.module.css +1 -1
- package/dist/cssm/components/Tappable/Tappable.module.css +1 -1
- package/dist/cssm/components/TextTooltip/TextTooltip.module.css +1 -1
- package/dist/cssm/components/Textarea/Textarea.module.css +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.d.ts +3 -3
- package/dist/cssm/components/Tooltip/Tooltip.js +122 -151
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.module.css +1 -1
- package/dist/cssm/components/Touch/Touch.js +4 -4
- package/dist/cssm/components/Touch/Touch.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.module.css +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.module.css +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.module.css +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.module.css +1 -1
- package/dist/cssm/components/Typography/Text/Text.module.css +1 -1
- package/dist/cssm/components/Typography/Title/Title.module.css +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.module.css +1 -1
- package/dist/cssm/components/View/View.js +1 -1
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/View.module.css +1 -1
- package/dist/cssm/components/View/ViewIOS.module.css +1 -1
- package/dist/cssm/components/View/ViewInfinite.d.ts +1 -1
- package/dist/cssm/components/View/ViewInfinite.js +1 -1
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/components/WriteBar/WriteBar.module.css +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +11 -9
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.module.css +1 -1
- package/dist/cssm/index.d.ts +37 -30
- package/dist/cssm/index.js +24 -18
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/floating/adapters.d.ts +2 -0
- package/dist/cssm/lib/floating/adapters.js +56 -0
- package/dist/cssm/lib/floating/adapters.js.map +1 -0
- package/dist/cssm/lib/floating/functions.d.ts +10 -0
- package/dist/cssm/lib/floating/functions.js +28 -0
- package/dist/cssm/lib/floating/functions.js.map +1 -0
- package/dist/cssm/lib/floating/index.d.ts +4 -0
- package/dist/cssm/lib/floating/index.js +4 -0
- package/dist/cssm/lib/floating/index.js.map +1 -0
- package/dist/cssm/lib/floating/types.d.ts +4 -0
- package/dist/cssm/lib/floating/types.js +2 -0
- package/dist/cssm/lib/floating/types.js.map +1 -0
- package/dist/cssm/lib/useIsomorphicLayoutEffect.d.ts +1 -1
- package/dist/cssm/lib/warnOnce.d.ts +7 -0
- package/dist/cssm/lib/warnOnce.js +12 -0
- package/dist/cssm/lib/warnOnce.js.map +1 -1
- package/dist/cssm/shared/breakpoints.d.ts +2 -2
- package/dist/cssm/shared/breakpoints.js +12 -13
- package/dist/cssm/shared/breakpoints.js.map +1 -1
- package/dist/cssm/styles/adaptivity.module.css +1 -1
- package/dist/cssm/styles/common.css +1 -1
- package/dist/cssm/styles/themes.css +1 -1
- package/dist/index.d.ts +37 -30
- package/dist/index.js +22 -16
- package/dist/index.js.map +1 -1
- package/dist/lib/floating/adapters.d.ts +2 -0
- package/dist/lib/floating/adapters.js +56 -0
- package/dist/lib/floating/adapters.js.map +1 -0
- package/dist/lib/floating/functions.d.ts +10 -0
- package/dist/lib/floating/functions.js +28 -0
- package/dist/lib/floating/functions.js.map +1 -0
- package/dist/lib/floating/index.d.ts +4 -0
- package/dist/lib/floating/index.js +4 -0
- package/dist/lib/floating/index.js.map +1 -0
- package/dist/lib/floating/types.d.ts +4 -0
- package/dist/lib/floating/types.js +2 -0
- package/dist/lib/floating/types.js.map +1 -0
- package/dist/lib/useIsomorphicLayoutEffect.d.ts +1 -1
- package/dist/lib/warnOnce.d.ts +7 -0
- package/dist/lib/warnOnce.js +12 -0
- package/dist/lib/warnOnce.js.map +1 -1
- package/dist/shared/breakpoints.d.ts +2 -2
- package/dist/shared/breakpoints.js +12 -13
- package/dist/shared/breakpoints.js.map +1 -1
- package/dist/stable.js.tmp +69 -21
- package/dist/vkui.css +143 -3
- package/dist/vkui.css.map +1 -1
- package/dist/vkui.js.tmp +61837 -0
- package/package.json +6 -6
- package/dist/cssm/styles/components.css +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiCellButton{background:transparent;border:none;box-sizing:border-box;cursor:pointer;margin:0;padding-bottom:0;padding-top:0;text-align:left;text-decoration:none;width:100%}.vkuiFormItem .vkuiCellButton{box-sizing:initial;margin:0 calc(-1 * var(--vkui--size_base_padding_horizontal--regular));width:100%}.vkuiCellButton[disabled]{opacity:.4}.vkuiCellButton--centered{justify-content:center;text-align:center}.vkuiCellButton--centered .vkuiSimpleCell__main{flex-grow:0;max-width:none}.vkuiCellButton--centered>.vkuiIcon{padding-right:8px}.vkuiCellButton{color:var(--vkui--color_text_accent)}.vkuiCellButton>.vkuiIcon{color:var(--vkui--color_icon_accent)}.vkuiCellButton--mode-danger{color:var(--vkui--color_text_negative)}.vkuiCellButton--mode-danger>.vkuiIcon{color:var(--vkui--color_icon_negative)}
|
|
1
|
+
.vkuiCellButton{background:transparent;border:none;box-sizing:border-box;cursor:pointer;margin:0;padding-bottom:0;padding-top:0;text-align:left;text-decoration:none;width:100%}.vkuiFormItem .vkuiCellButton{box-sizing:initial;margin:0 calc(-1 * 16px);margin:0 calc(-1 * var(--vkui--size_base_padding_horizontal--regular));width:100%}.vkuiCellButton[disabled]{opacity:.4}.vkuiCellButton--centered{justify-content:center;text-align:center}.vkuiCellButton--centered .vkuiSimpleCell__main{flex-grow:0;max-width:none}.vkuiCellButton--centered>.vkuiIcon{padding-right:8px}.vkuiCellButton{color:#2688eb;color:var(--vkui--color_text_accent)}.vkuiCellButton>.vkuiIcon{color:#2688eb;color:var(--vkui--color_icon_accent)}.vkuiCellButton--mode-danger{color:#e64646;color:var(--vkui--color_text_negative)}.vkuiCellButton--mode-danger>.vkuiIcon{color:#e64646;color:var(--vkui--color_icon_negative)}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { type TappableProps } from '../Tappable/Tappable';
|
|
2
3
|
import { HasRef, HasRootRef } from '../../types';
|
|
3
|
-
export interface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement>, HasRootRef<HTMLLabelElement>, HasRef<HTMLInputElement> {
|
|
4
|
+
export interface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement>, HasRootRef<HTMLLabelElement>, HasRef<HTMLInputElement>, Pick<TappableProps, 'hoverMode' | 'activeMode' | 'hasHover' | 'hasActive' | 'focusVisibleMode'> {
|
|
4
5
|
description?: React.ReactNode;
|
|
5
6
|
indeterminate?: boolean;
|
|
6
7
|
defaultIndeterminate?: boolean;
|
|
@@ -8,4 +9,4 @@ export interface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElemen
|
|
|
8
9
|
/**
|
|
9
10
|
* @see https://vkcom.github.io/VKUI/#/Checkbox
|
|
10
11
|
*/
|
|
11
|
-
export declare const Checkbox: ({ children, className, style, getRootRef, getRef, description, indeterminate, defaultIndeterminate, onChange, ...restProps }: CheckboxProps) => JSX.Element;
|
|
12
|
+
export declare const Checkbox: ({ children, className, style, getRootRef, getRef, description, indeterminate, defaultIndeterminate, hoverMode, activeMode, hasHover, hasActive, focusVisibleMode, onChange, ...restProps }: CheckboxProps) => JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["children", "className", "style", "getRootRef", "getRef", "description", "indeterminate", "defaultIndeterminate", "onChange"];
|
|
3
|
+
var _excluded = ["children", "className", "style", "getRootRef", "getRef", "description", "indeterminate", "defaultIndeterminate", "hoverMode", "activeMode", "hasHover", "hasActive", "focusVisibleMode", "onChange"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { ACTIVE_EFFECT_DELAY, Tappable } from '../Tappable/Tappable';
|
|
6
6
|
import { classNames, hasReactNode } from '@vkontakte/vkjs';
|
|
@@ -29,6 +29,11 @@ export var Checkbox = function Checkbox(_ref) {
|
|
|
29
29
|
description = _ref.description,
|
|
30
30
|
indeterminate = _ref.indeterminate,
|
|
31
31
|
defaultIndeterminate = _ref.defaultIndeterminate,
|
|
32
|
+
hoverMode = _ref.hoverMode,
|
|
33
|
+
activeMode = _ref.activeMode,
|
|
34
|
+
hasHover = _ref.hasHover,
|
|
35
|
+
hasActive = _ref.hasActive,
|
|
36
|
+
focusVisibleMode = _ref.focusVisibleMode,
|
|
32
37
|
onChange = _ref.onChange,
|
|
33
38
|
restProps = _objectWithoutProperties(_ref, _excluded);
|
|
34
39
|
var inputRef = useExternRef(getRef);
|
|
@@ -69,7 +74,12 @@ export var Checkbox = function Checkbox(_ref) {
|
|
|
69
74
|
style: style,
|
|
70
75
|
disabled: restProps.disabled,
|
|
71
76
|
activeEffectDelay: platform === Platform.IOS ? 100 : ACTIVE_EFFECT_DELAY,
|
|
72
|
-
getRootRef: getRootRef
|
|
77
|
+
getRootRef: getRootRef,
|
|
78
|
+
hoverMode: hoverMode,
|
|
79
|
+
activeMode: activeMode,
|
|
80
|
+
hasHover: hasHover,
|
|
81
|
+
hasActive: hasActive,
|
|
82
|
+
focusVisibleMode: focusVisibleMode
|
|
73
83
|
}, /*#__PURE__*/React.createElement(VisuallyHiddenInput, _extends({}, restProps, {
|
|
74
84
|
onChange: handleChange,
|
|
75
85
|
type: "checkbox",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","names":["React","ACTIVE_EFFECT_DELAY","Tappable","classNames","hasReactNode","Platform","Icon20CheckBoxOn","Icon24CheckBoxOn","Icon20CheckBoxOff","Icon24CheckBoxOff","Icon20CheckBoxIndetermanate","usePlatform","Footnote","getSizeYClassName","useAdaptivity","useExternRef","useAdaptivityConditionalRender","VisuallyHiddenInput","warnOnce","warn","Checkbox","children","className","style","getRootRef","getRef","description","indeterminate","defaultIndeterminate","onChange","restProps","inputRef","platform","sizeY","adaptiveSizeY","useEffect","indeterminateValue","undefined","current","Boolean","handleChange","useCallback","event","checked","process","env","NODE_ENV","defaultChecked","VKCOM","disabled","IOS","compact","regular"],"sources":["../../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ACTIVE_EFFECT_DELAY, Tappable } from '../Tappable/Tappable';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { Platform } from '../../lib/platform';\nimport {\n Icon20CheckBoxOn,\n Icon24CheckBoxOn,\n Icon20CheckBoxOff,\n Icon24CheckBoxOff,\n Icon20CheckBoxIndetermanate,\n} from '@vkontakte/icons';\nimport { HasRef, HasRootRef } from '../../types';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { getSizeYClassName } from '../../helpers/getSizeYClassName';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\nimport { VisuallyHiddenInput } from '../VisuallyHiddenInput/VisuallyHiddenInput';\nimport { warnOnce } from '../../lib/warnOnce';\nimport styles from './Checkbox.module.css';\n\nexport interface CheckboxProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLLabelElement>,\n HasRef<HTMLInputElement> {\n description?: React.ReactNode;\n indeterminate?: boolean;\n defaultIndeterminate?: boolean;\n}\n\nconst warn = warnOnce('Checkbox');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Checkbox\n */\nexport const Checkbox = ({\n children,\n className,\n style,\n getRootRef,\n getRef,\n description,\n indeterminate,\n defaultIndeterminate,\n onChange,\n ...restProps\n}: CheckboxProps) => {\n const inputRef = useExternRef(getRef);\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const { sizeY: adaptiveSizeY } = useAdaptivityConditionalRender();\n\n React.useEffect(() => {\n const indeterminateValue = indeterminate === undefined ? defaultIndeterminate : indeterminate;\n\n if (inputRef.current) {\n inputRef.current.indeterminate = Boolean(indeterminateValue);\n }\n }, [defaultIndeterminate, indeterminate, inputRef]);\n\n const handleChange: CheckboxProps['onChange'] = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (\n defaultIndeterminate !== undefined &&\n indeterminate === undefined &&\n restProps.checked === undefined &&\n inputRef.current\n ) {\n inputRef.current.indeterminate = false;\n }\n if (indeterminate !== undefined && inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n onChange && onChange(event);\n },\n [defaultIndeterminate, indeterminate, restProps.checked, onChange, inputRef],\n );\n\n if (process.env.NODE_ENV === 'development') {\n if (defaultIndeterminate && restProps.defaultChecked) {\n warn('defaultIndeterminate и defaultChecked не могут быть true одновременно', 'error');\n }\n\n if (indeterminate && restProps.checked) {\n warn('indeterminate и checked не могут быть true одновременно', 'error');\n }\n\n if (restProps.defaultChecked && restProps.checked) {\n warn('defaultChecked и checked не могут быть true одновременно', 'error');\n }\n }\n\n return (\n <Tappable\n Component=\"label\"\n className={classNames(\n styles['Checkbox'],\n platform === Platform.VKCOM && styles['Checkbox--vkcom'],\n getSizeYClassName(styles['Checkbox'], sizeY),\n !(hasReactNode(children) || hasReactNode(description)) && styles['Checkbox--simple'],\n className,\n )}\n style={style}\n disabled={restProps.disabled}\n activeEffectDelay={platform === Platform.IOS ? 100 : ACTIVE_EFFECT_DELAY}\n getRootRef={getRootRef}\n >\n <VisuallyHiddenInput\n {...restProps}\n onChange={handleChange}\n type=\"checkbox\"\n className={styles['Checkbox__input']}\n getRef={inputRef}\n />\n <div className={classNames(styles['Checkbox__icon'], styles['Checkbox__icon--on'])}>\n {platform === Platform.VKCOM ? (\n <Icon20CheckBoxOn />\n ) : (\n <React.Fragment>\n {adaptiveSizeY.compact && (\n <Icon20CheckBoxOn className={adaptiveSizeY.compact.className} />\n )}\n {adaptiveSizeY.regular && (\n <Icon24CheckBoxOn className={adaptiveSizeY.regular.className} />\n )}\n </React.Fragment>\n )}\n </div>\n <div className={classNames(styles['Checkbox__icon'], styles['Checkbox__icon--off'])}>\n {platform === Platform.VKCOM ? (\n <Icon20CheckBoxOff />\n ) : (\n <React.Fragment>\n {adaptiveSizeY.compact && (\n <Icon20CheckBoxOff className={adaptiveSizeY.compact.className} />\n )}\n {adaptiveSizeY.regular && (\n <Icon24CheckBoxOff className={adaptiveSizeY.regular.className} />\n )}\n </React.Fragment>\n )}\n </div>\n <div\n className={classNames(styles['Checkbox__icon'], styles['Checkbox__icon--indeterminate'])}\n >\n {platform === Platform.VKCOM ? (\n <Icon20CheckBoxIndetermanate width={20} height={20} />\n ) : (\n <React.Fragment>\n {adaptiveSizeY.compact && (\n <Icon20CheckBoxIndetermanate\n className={adaptiveSizeY.compact.className}\n width={20}\n height={20}\n />\n )}\n {adaptiveSizeY.regular && (\n <Icon20CheckBoxIndetermanate\n className={adaptiveSizeY.regular.className}\n width={24}\n height={24}\n />\n )}\n </React.Fragment>\n )}\n </div>\n <div className={styles['Checkbox__content']}>\n <div className={styles['Checkbox__children']}>{children}</div>\n {hasReactNode(description) && (\n <Footnote className={styles['Checkbox__description']}>{description}</Footnote>\n )}\n </div>\n </Tappable>\n );\n};\n"],"mappings":";;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,mBAAmB,EAAEC,QAAQ,QAAQ,sBAAsB;AACpE,SAASC,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAC1D,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SACEC,gBAAgB,EAChBC,gBAAgB,EAChBC,iBAAiB,EACjBC,iBAAiB,EACjBC,2BAA2B,QACtB,kBAAkB;AAEzB,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SAASC,QAAQ,QAAQ,iCAAiC;AAC1D,SAASC,iBAAiB,QAAQ,iCAAiC;AACnE,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,YAAY,QAAQ,0BAA0B;AACvD,SAASC,8BAA8B,QAAQ,4CAA4C;AAC3F,SAASC,mBAAmB,QAAQ,4CAA4C;AAChF,SAASC,QAAQ,QAAQ,oBAAoB;AAAC;AAY9C,IAAMC,IAAI,GAAGD,QAAQ,CAAC,UAAU,CAAC;;AAEjC;AACA;AACA;AACA,OAAO,IAAME,QAAQ,GAAG,SAAXA,QAAQ,OAWA;EAAA,IAVnBC,QAAQ,QAARA,QAAQ;IACRC,SAAS,QAATA,SAAS;IACTC,KAAK,QAALA,KAAK;IACLC,UAAU,QAAVA,UAAU;IACVC,MAAM,QAANA,MAAM;IACNC,WAAW,QAAXA,WAAW;IACXC,aAAa,QAAbA,aAAa;IACbC,oBAAoB,QAApBA,oBAAoB;IACpBC,QAAQ,QAARA,QAAQ;IACLC,SAAS;EAEZ,IAAMC,QAAQ,GAAGhB,YAAY,CAACU,MAAM,CAAC;EACrC,IAAMO,QAAQ,GAAGrB,WAAW,EAAE;EAC9B,qBAAkBG,aAAa,EAAE;IAAzBmB,KAAK,kBAALA,KAAK;EACb,4BAAiCjB,8BAA8B,EAAE;IAAlDkB,aAAa,yBAApBD,KAAK;EAEbjC,KAAK,CAACmC,SAAS,CAAC,YAAM;IACpB,IAAMC,kBAAkB,GAAGT,aAAa,KAAKU,SAAS,GAAGT,oBAAoB,GAAGD,aAAa;IAE7F,IAAII,QAAQ,CAACO,OAAO,EAAE;MACpBP,QAAQ,CAACO,OAAO,CAACX,aAAa,GAAGY,OAAO,CAACH,kBAAkB,CAAC;IAC9D;EACF,CAAC,EAAE,CAACR,oBAAoB,EAAED,aAAa,EAAEI,QAAQ,CAAC,CAAC;EAEnD,IAAMS,YAAuC,GAAGxC,KAAK,CAACyC,WAAW,CAC/D,UAACC,KAA0C,EAAK;IAC9C,IACEd,oBAAoB,KAAKS,SAAS,IAClCV,aAAa,KAAKU,SAAS,IAC3BP,SAAS,CAACa,OAAO,KAAKN,SAAS,IAC/BN,QAAQ,CAACO,OAAO,EAChB;MACAP,QAAQ,CAACO,OAAO,CAACX,aAAa,GAAG,KAAK;IACxC;IACA,IAAIA,aAAa,KAAKU,SAAS,IAAIN,QAAQ,CAACO,OAAO,EAAE;MACnDP,QAAQ,CAACO,OAAO,CAACX,aAAa,GAAGA,aAAa;IAChD;IACAE,QAAQ,IAAIA,QAAQ,CAACa,KAAK,CAAC;EAC7B,CAAC,EACD,CAACd,oBAAoB,EAAED,aAAa,EAAEG,SAAS,CAACa,OAAO,EAAEd,QAAQ,EAAEE,QAAQ,CAAC,CAC7E;EAED,IAAIa,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;IAC1C,IAAIlB,oBAAoB,IAAIE,SAAS,CAACiB,cAAc,EAAE;MACpD5B,IAAI,CAAC,uEAAuE,EAAE,OAAO,CAAC;IACxF;IAEA,IAAIQ,aAAa,IAAIG,SAAS,CAACa,OAAO,EAAE;MACtCxB,IAAI,CAAC,yDAAyD,EAAE,OAAO,CAAC;IAC1E;IAEA,IAAIW,SAAS,CAACiB,cAAc,IAAIjB,SAAS,CAACa,OAAO,EAAE;MACjDxB,IAAI,CAAC,0DAA0D,EAAE,OAAO,CAAC;IAC3E;EACF;EAEA,oBACE,oBAAC,QAAQ;IACP,SAAS,EAAC,OAAO;IACjB,SAAS,EAAEhB,UAAU,iBAEnB6B,QAAQ,KAAK3B,QAAQ,CAAC2C,KAAK,yBAA6B,EACxDnC,iBAAiB,iBAAqBoB,KAAK,CAAC,EAC5C,EAAE7B,YAAY,CAACiB,QAAQ,CAAC,IAAIjB,YAAY,CAACsB,WAAW,CAAC,CAAC,0BAA8B,EACpFJ,SAAS,CACT;IACF,KAAK,EAAEC,KAAM;IACb,QAAQ,EAAEO,SAAS,CAACmB,QAAS;IAC7B,iBAAiB,EAAEjB,QAAQ,KAAK3B,QAAQ,CAAC6C,GAAG,GAAG,GAAG,GAAGjD,mBAAoB;IACzE,UAAU,EAAEuB;EAAW,gBAEvB,oBAAC,mBAAmB,eACdM,SAAS;IACb,QAAQ,EAAEU,YAAa;IACvB,IAAI,EAAC,UAAU;IACf,SAAS,uBAA4B;IACrC,MAAM,EAAET;EAAS,GACjB,eACF;IAAK,SAAS,EAAE5B,UAAU;EAAyD,GAChF6B,QAAQ,KAAK3B,QAAQ,CAAC2C,KAAK,gBAC1B,oBAAC,gBAAgB,OAAG,gBAEpB,oBAAC,KAAK,CAAC,QAAQ,QACZd,aAAa,CAACiB,OAAO,iBACpB,oBAAC,gBAAgB;IAAC,SAAS,EAAEjB,aAAa,CAACiB,OAAO,CAAC7B;EAAU,EAC9D,EACAY,aAAa,CAACkB,OAAO,iBACpB,oBAAC,gBAAgB;IAAC,SAAS,EAAElB,aAAa,CAACkB,OAAO,CAAC9B;EAAU,EAC9D,CAEJ,CACG,eACN;IAAK,SAAS,EAAEnB,UAAU;EAA0D,GACjF6B,QAAQ,KAAK3B,QAAQ,CAAC2C,KAAK,gBAC1B,oBAAC,iBAAiB,OAAG,gBAErB,oBAAC,KAAK,CAAC,QAAQ,QACZd,aAAa,CAACiB,OAAO,iBACpB,oBAAC,iBAAiB;IAAC,SAAS,EAAEjB,aAAa,CAACiB,OAAO,CAAC7B;EAAU,EAC/D,EACAY,aAAa,CAACkB,OAAO,iBACpB,oBAAC,iBAAiB;IAAC,SAAS,EAAElB,aAAa,CAACkB,OAAO,CAAC9B;EAAU,EAC/D,CAEJ,CACG,eACN;IACE,SAAS,EAAEnB,UAAU;EAAoE,GAExF6B,QAAQ,KAAK3B,QAAQ,CAAC2C,KAAK,gBAC1B,oBAAC,2BAA2B;IAAC,KAAK,EAAE,EAAG;IAAC,MAAM,EAAE;EAAG,EAAG,gBAEtD,oBAAC,KAAK,CAAC,QAAQ,QACZd,aAAa,CAACiB,OAAO,iBACpB,oBAAC,2BAA2B;IAC1B,SAAS,EAAEjB,aAAa,CAACiB,OAAO,CAAC7B,SAAU;IAC3C,KAAK,EAAE,EAAG;IACV,MAAM,EAAE;EAAG,EAEd,EACAY,aAAa,CAACkB,OAAO,iBACpB,oBAAC,2BAA2B;IAC1B,SAAS,EAAElB,aAAa,CAACkB,OAAO,CAAC9B,SAAU;IAC3C,KAAK,EAAE,EAAG;IACV,MAAM,EAAE;EAAG,EAEd,CAEJ,CACG,eACN;IAAK,SAAS;EAA8B,gBAC1C;IAAK,SAAS;EAA+B,GAAED,QAAQ,CAAO,EAC7DjB,YAAY,CAACsB,WAAW,CAAC,iBACxB,oBAAC,QAAQ;IAAC,SAAS;EAAkC,GAAEA,WAAW,CACnE,CACG,CACG;AAEf,CAAC"}
|
|
1
|
+
{"version":3,"file":"Checkbox.js","names":["React","ACTIVE_EFFECT_DELAY","Tappable","classNames","hasReactNode","Platform","Icon20CheckBoxOn","Icon24CheckBoxOn","Icon20CheckBoxOff","Icon24CheckBoxOff","Icon20CheckBoxIndetermanate","usePlatform","Footnote","getSizeYClassName","useAdaptivity","useExternRef","useAdaptivityConditionalRender","VisuallyHiddenInput","warnOnce","warn","Checkbox","children","className","style","getRootRef","getRef","description","indeterminate","defaultIndeterminate","hoverMode","activeMode","hasHover","hasActive","focusVisibleMode","onChange","restProps","inputRef","platform","sizeY","adaptiveSizeY","useEffect","indeterminateValue","undefined","current","Boolean","handleChange","useCallback","event","checked","process","env","NODE_ENV","defaultChecked","VKCOM","disabled","IOS","compact","regular"],"sources":["../../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import * as React from 'react';\nimport { type TappableProps, ACTIVE_EFFECT_DELAY, Tappable } from '../Tappable/Tappable';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { Platform } from '../../lib/platform';\nimport {\n Icon20CheckBoxOn,\n Icon24CheckBoxOn,\n Icon20CheckBoxOff,\n Icon24CheckBoxOff,\n Icon20CheckBoxIndetermanate,\n} from '@vkontakte/icons';\nimport { HasRef, HasRootRef } from '../../types';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { getSizeYClassName } from '../../helpers/getSizeYClassName';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\nimport { VisuallyHiddenInput } from '../VisuallyHiddenInput/VisuallyHiddenInput';\nimport { warnOnce } from '../../lib/warnOnce';\nimport styles from './Checkbox.module.css';\n\nexport interface CheckboxProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLLabelElement>,\n HasRef<HTMLInputElement>,\n Pick<\n TappableProps,\n 'hoverMode' | 'activeMode' | 'hasHover' | 'hasActive' | 'focusVisibleMode'\n > {\n description?: React.ReactNode;\n indeterminate?: boolean;\n defaultIndeterminate?: boolean;\n}\n\nconst warn = warnOnce('Checkbox');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Checkbox\n */\nexport const Checkbox = ({\n children,\n className,\n style,\n getRootRef,\n getRef,\n description,\n indeterminate,\n defaultIndeterminate,\n hoverMode,\n activeMode,\n hasHover,\n hasActive,\n focusVisibleMode,\n onChange,\n ...restProps\n}: CheckboxProps) => {\n const inputRef = useExternRef(getRef);\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const { sizeY: adaptiveSizeY } = useAdaptivityConditionalRender();\n\n React.useEffect(() => {\n const indeterminateValue = indeterminate === undefined ? defaultIndeterminate : indeterminate;\n\n if (inputRef.current) {\n inputRef.current.indeterminate = Boolean(indeterminateValue);\n }\n }, [defaultIndeterminate, indeterminate, inputRef]);\n\n const handleChange: CheckboxProps['onChange'] = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (\n defaultIndeterminate !== undefined &&\n indeterminate === undefined &&\n restProps.checked === undefined &&\n inputRef.current\n ) {\n inputRef.current.indeterminate = false;\n }\n if (indeterminate !== undefined && inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n onChange && onChange(event);\n },\n [defaultIndeterminate, indeterminate, restProps.checked, onChange, inputRef],\n );\n\n if (process.env.NODE_ENV === 'development') {\n if (defaultIndeterminate && restProps.defaultChecked) {\n warn('defaultIndeterminate и defaultChecked не могут быть true одновременно', 'error');\n }\n\n if (indeterminate && restProps.checked) {\n warn('indeterminate и checked не могут быть true одновременно', 'error');\n }\n\n if (restProps.defaultChecked && restProps.checked) {\n warn('defaultChecked и checked не могут быть true одновременно', 'error');\n }\n }\n\n return (\n <Tappable\n Component=\"label\"\n className={classNames(\n styles['Checkbox'],\n platform === Platform.VKCOM && styles['Checkbox--vkcom'],\n getSizeYClassName(styles['Checkbox'], sizeY),\n !(hasReactNode(children) || hasReactNode(description)) && styles['Checkbox--simple'],\n className,\n )}\n style={style}\n disabled={restProps.disabled}\n activeEffectDelay={platform === Platform.IOS ? 100 : ACTIVE_EFFECT_DELAY}\n getRootRef={getRootRef}\n hoverMode={hoverMode}\n activeMode={activeMode}\n hasHover={hasHover}\n hasActive={hasActive}\n focusVisibleMode={focusVisibleMode}\n >\n <VisuallyHiddenInput\n {...restProps}\n onChange={handleChange}\n type=\"checkbox\"\n className={styles['Checkbox__input']}\n getRef={inputRef}\n />\n <div className={classNames(styles['Checkbox__icon'], styles['Checkbox__icon--on'])}>\n {platform === Platform.VKCOM ? (\n <Icon20CheckBoxOn />\n ) : (\n <React.Fragment>\n {adaptiveSizeY.compact && (\n <Icon20CheckBoxOn className={adaptiveSizeY.compact.className} />\n )}\n {adaptiveSizeY.regular && (\n <Icon24CheckBoxOn className={adaptiveSizeY.regular.className} />\n )}\n </React.Fragment>\n )}\n </div>\n <div className={classNames(styles['Checkbox__icon'], styles['Checkbox__icon--off'])}>\n {platform === Platform.VKCOM ? (\n <Icon20CheckBoxOff />\n ) : (\n <React.Fragment>\n {adaptiveSizeY.compact && (\n <Icon20CheckBoxOff className={adaptiveSizeY.compact.className} />\n )}\n {adaptiveSizeY.regular && (\n <Icon24CheckBoxOff className={adaptiveSizeY.regular.className} />\n )}\n </React.Fragment>\n )}\n </div>\n <div\n className={classNames(styles['Checkbox__icon'], styles['Checkbox__icon--indeterminate'])}\n >\n {platform === Platform.VKCOM ? (\n <Icon20CheckBoxIndetermanate width={20} height={20} />\n ) : (\n <React.Fragment>\n {adaptiveSizeY.compact && (\n <Icon20CheckBoxIndetermanate\n className={adaptiveSizeY.compact.className}\n width={20}\n height={20}\n />\n )}\n {adaptiveSizeY.regular && (\n <Icon20CheckBoxIndetermanate\n className={adaptiveSizeY.regular.className}\n width={24}\n height={24}\n />\n )}\n </React.Fragment>\n )}\n </div>\n <div className={styles['Checkbox__content']}>\n <div className={styles['Checkbox__children']}>{children}</div>\n {hasReactNode(description) && (\n <Footnote className={styles['Checkbox__description']}>{description}</Footnote>\n )}\n </div>\n </Tappable>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiCheckbox{align-items:center;display:flex;font-family:var(--vkui--font_family_base);justify-content:flex-start;min-height:var(--vkui--size_field_height--regular);min-width:var(--vkui--size_field_height--regular);padding:0 var(--vkui--size_base_padding_horizontal--regular)}.vkuiFormItem .vkuiCheckbox{box-sizing:initial;margin:0 calc(-1 * var(--vkui--size_base_padding_horizontal--regular));width:100%}.vkuiCheckbox__icon{flex-shrink:0;margin-right:12px}.vkuiCheckbox__icon--indeterminate,.vkuiCheckbox__icon--on{color:var(--vkui--color_icon_accent);display:none}.vkuiCheckbox__icon--off{color:var(--vkui--color_icon_tertiary)}.vkuiCheckbox__content{color:var(--vkui--color_text_primary);flex-grow:1;font-weight:var(--vkui--font_weight_accent3);word-break:break-word}.vkuiCheckbox--sizeY-regular:not(.vkuiCheckbox--vkcom) .vkuiCheckbox__content{font-size:var(--vkui--font_headline1--font_size--regular);line-height:var(--vkui--font_headline1--line_height--regular)}@media (
|
|
1
|
+
.vkuiCheckbox{align-items:center;display:flex;font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_family_base);justify-content:flex-start;min-height:44px;min-height:var(--vkui--size_field_height--regular);min-width:44px;min-width:var(--vkui--size_field_height--regular);padding:0 16px;padding:0 var(--vkui--size_base_padding_horizontal--regular)}.vkuiFormItem .vkuiCheckbox{box-sizing:initial;margin:0 calc(-1 * 16px);margin:0 calc(-1 * var(--vkui--size_base_padding_horizontal--regular));width:100%}.vkuiCheckbox__icon{flex-shrink:0;margin-right:12px}.vkuiCheckbox__icon--indeterminate,.vkuiCheckbox__icon--on{color:#2688eb;color:var(--vkui--color_icon_accent);display:none}.vkuiCheckbox__icon--off{color:#b8c1cc;color:var(--vkui--color_icon_tertiary)}.vkuiCheckbox__content{color:#000;color:var(--vkui--color_text_primary);flex-grow:1;font-weight:400;font-weight:var(--vkui--font_weight_accent3);word-break:break-word}.vkuiCheckbox--sizeY-regular:not(.vkuiCheckbox--vkcom) .vkuiCheckbox__content{font-size:16px;font-size:var(--vkui--font_headline1--font_size--regular);line-height:20px;line-height:var(--vkui--font_headline1--line_height--regular)}@media (not (min-width:768px)) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiCheckbox--sizeY-none:not(.vkuiCheckbox--vkcom) .vkuiCheckbox__content{font-size:16px;font-size:var(--vkui--font_headline1--font_size--regular);line-height:20px;line-height:var(--vkui--font_headline1--line_height--regular)}}.vkuiCheckbox--sizeY-compact .vkuiCheckbox__content,.vkuiCheckbox--vkcom .vkuiCheckbox__content{font-size:15px;font-size:var(--vkui--font_text--font_size--compact);line-height:20px;line-height:var(--vkui--font_text--line_height--compact)}@media (pointer:fine) and (min-width:768px),not (min-height:415px){.vkuiCheckbox--sizeY-none .vkuiCheckbox__content{font-size:15px;font-size:var(--vkui--font_text--font_size--compact);line-height:20px;line-height:var(--vkui--font_text--line_height--compact)}}.vkuiCheckbox__description{color:#818c99;color:var(--vkui--color_text_secondary);display:block;margin-bottom:12px;margin-top:2px}.vkuiCheckbox__children{margin-top:12px}.vkuiCheckbox__children:last-child{margin-bottom:12px}.vkuiCheckbox__input:checked~.vkuiCheckbox__icon--on{display:flex}.vkuiCheckbox__input:checked~.vkuiCheckbox__icon--off,.vkuiCheckbox__input:indeterminate~.vkuiCheckbox__icon--indeterminate{display:none}.vkuiCheckbox__input:indeterminate~.vkuiCheckbox__icon--indeterminate{display:flex}.vkuiCheckbox__input:indeterminate~.vkuiCheckbox__icon--off,.vkuiCheckbox__input:indeterminate~.vkuiCheckbox__icon--on{display:none}.vkuiCheckbox__input[disabled]~*{opacity:.64;opacity:var(--vkui--opacity_disable_accessibility)}.vkuiCheckbox--sizeY-compact{min-height:36px;min-height:var(--vkui--size_field_height--compact);min-width:36px;min-width:var(--vkui--size_field_height--compact)}.vkuiCheckbox--sizeY-compact .vkuiCheckbox__children{margin-top:8px}.vkuiCheckbox--sizeY-compact .vkuiCheckbox__children:last-child,.vkuiCheckbox--sizeY-compact .vkuiCheckbox__description{margin-bottom:8px}@media (pointer:fine) and (min-width:768px),not (min-height:415px){.vkuiCheckbox--sizeY-none{min-height:36px;min-height:var(--vkui--size_field_height--compact);min-width:36px;min-width:var(--vkui--size_field_height--compact)}.vkuiCheckbox--sizeY-none .vkuiCheckbox__children{margin-top:8px}.vkuiCheckbox--sizeY-none .vkuiCheckbox__children:last-child,.vkuiCheckbox--sizeY-none .vkuiCheckbox__description{margin-bottom:8px}}.vkuiCheckbox--simple{align-items:center;border-radius:50%;display:flex;justify-content:center;padding:0}.vkuiCheckbox--simple .vkuiCheckbox__content{display:none}.vkuiCheckbox--simple .vkuiCheckbox__icon{margin:0}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiChip{background:var(--vkui--color_background_content);border:var(--vkui_internal--thin_border) solid var(--vkui--color_image_border_alpha);border-radius:6px;box-sizing:border-box;display:inline-block;height:32px}.vkuiChip__in{align-items:center;display:flex;height:100%;padding:0 8px;position:relative}.vkuiChip--removable .vkuiChip__in{padding-right:0}.vkuiChip__content{color:var(--vkui--color_text_primary);display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vkuiChip__remove{align-content:center;align-items:center;background:transparent;border:none;border-radius:2px;box-sizing:border-box;color:var(--vkui--color_icon_secondary);cursor:pointer;display:flex;flex-grow:0;flex-shrink:0;height:28px;justify-content:center;margin:-1px;padding:6px;position:relative;transform:translateX(-1px);width:28px}.vkuiChip__before{margin-right:6px}.vkuiChip__after{margin-left:6px}.vkuiChip--sizeY-compact{height:28px}@media (
|
|
1
|
+
.vkuiChip{background:#fff;background:var(--vkui--color_background_content);border:1px solid rgba(0,0,0,.08);border:var(--vkui_internal--thin_border) solid var(--vkui--color_image_border_alpha);border-radius:6px;box-sizing:border-box;display:inline-block;height:32px}.vkuiChip__in{align-items:center;display:flex;height:100%;padding:0 8px;position:relative}.vkuiChip--removable .vkuiChip__in{padding-right:0}.vkuiChip__content{color:#000;color:var(--vkui--color_text_primary);display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vkuiChip__remove{align-content:center;align-items:center;background:transparent;border:none;border-radius:2px;box-sizing:border-box;color:#99a2ad;color:var(--vkui--color_icon_secondary);cursor:pointer;display:flex;flex-grow:0;flex-shrink:0;height:28px;justify-content:center;margin:-1px;padding:6px;position:relative;transform:translateX(-1px);width:28px}.vkuiChip__before{margin-right:6px}.vkuiChip__after{margin-left:6px}.vkuiChip--sizeY-compact{height:28px}@media (pointer:fine) and (min-width:768px),not (min-height:415px){.vkuiChip--sizeY-none{height:28px}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiChipsInputBase{display:flex;flex-grow:1;flex-shrink:1;flex-wrap:wrap;max-width:100%;overflow:hidden;padding:3px;position:relative;z-index:1;z-index:var(--vkui_internal--z_index_form_field_element)}.vkuiChipsInputBase__chip{margin:2px;max-width:calc(100% - 4px)}.vkuiChipsInputBase__label{display:flex;flex:1;flex-direction:column;margin:2px 2px 2px 10px}.vkuiChipsInputBase__el{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;box-shadow:none;color:var(--vkui--color_text_primary);font-family:inherit;font-size:15px;line-height:26px;margin-bottom:2px;padding:0;position:relative;width:100%}.vkuiChipsInputBase__el:focus{min-width:64px}.vkuiChipsInputBase__el::-ms-clear{display:none}.vkuiChipsInputBase__el:disabled{opacity:var(--vkui--opacity_disable_accessibility)}.vkuiChipsInputBase__el::-webkit-input-placeholder{color:var(--vkui--color_text_secondary);opacity:1}.vkuiChipsInputBase__el::-moz-placeholder{color:var(--vkui--color_text_secondary);opacity:1}.vkuiChipsInputBase__el::-ms-input-placeholder{color:var(--vkui--color_text_secondary);opacity:1}.vkuiChipsInputBase__el::placeholder{color:var(--vkui--color_text_secondary);opacity:1}.vkuiChipsInputBase__el:disabled::-webkit-input-placeholder{color:var(--vkui--color_text_secondary)}.vkuiChipsInputBase__el:disabled::-moz-placeholder{color:var(--vkui--color_text_secondary)}.vkuiChipsInputBase__el:disabled::-ms-input-placeholder{color:var(--vkui--color_text_secondary)}.vkuiChipsInputBase__el:disabled::placeholder{color:var(--vkui--color_text_secondary)}.vkuiChipsInputBase__el[readonly]{cursor:default}.vkuiChipsInputBase--sizeY-compact{padding:1px}
|
|
1
|
+
.vkuiChipsInputBase{display:flex;flex-grow:1;flex-shrink:1;flex-wrap:wrap;max-width:100%;overflow:hidden;padding:3px;position:relative;z-index:1;z-index:var(--vkui_internal--z_index_form_field_element)}.vkuiChipsInputBase__chip{margin:2px;max-width:calc(100% - 4px)}.vkuiChipsInputBase__label{display:flex;flex:1;flex-direction:column;margin:2px 2px 2px 10px}.vkuiChipsInputBase__el{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;box-shadow:none;color:#000;color:var(--vkui--color_text_primary);font-family:inherit;font-size:15px;line-height:26px;margin-bottom:2px;padding:0;position:relative;width:100%}.vkuiChipsInputBase__el:focus{min-width:64px}.vkuiChipsInputBase__el::-ms-clear{display:none}.vkuiChipsInputBase__el:disabled{opacity:.64;opacity:var(--vkui--opacity_disable_accessibility)}.vkuiChipsInputBase__el::-webkit-input-placeholder{color:#818c99;color:var(--vkui--color_text_secondary);opacity:1}.vkuiChipsInputBase__el::-moz-placeholder{color:#818c99;color:var(--vkui--color_text_secondary);opacity:1}.vkuiChipsInputBase__el::-ms-input-placeholder{color:#818c99;color:var(--vkui--color_text_secondary);opacity:1}.vkuiChipsInputBase__el::placeholder{color:#818c99;color:var(--vkui--color_text_secondary);opacity:1}.vkuiChipsInputBase__el:disabled::-webkit-input-placeholder{color:#818c99;color:var(--vkui--color_text_secondary)}.vkuiChipsInputBase__el:disabled::-moz-placeholder{color:#818c99;color:var(--vkui--color_text_secondary)}.vkuiChipsInputBase__el:disabled::-ms-input-placeholder{color:#818c99;color:var(--vkui--color_text_secondary)}.vkuiChipsInputBase__el:disabled::placeholder{color:#818c99;color:var(--vkui--color_text_secondary)}.vkuiChipsInputBase__el[readonly]{cursor:default}.vkuiChipsInputBase--sizeY-compact{padding:1px}
|
|
@@ -226,9 +226,6 @@ export var ChipsSelect = function ChipsSelect(props) {
|
|
|
226
226
|
var onDropdownMouseLeave = React.useCallback(function () {
|
|
227
227
|
setFocusedOptionIndex(null);
|
|
228
228
|
}, [setFocusedOptionIndex]);
|
|
229
|
-
var observableRefs = React.useMemo(function () {
|
|
230
|
-
return [scrollBoxRef, rootRef];
|
|
231
|
-
}, [rootRef, scrollBoxRef]);
|
|
232
229
|
var toggleOpened = function toggleOpened() {
|
|
233
230
|
setOpened(function (prevOpened) {
|
|
234
231
|
return !prevOpened;
|
|
@@ -273,7 +270,6 @@ export var ChipsSelect = function ChipsSelect(props) {
|
|
|
273
270
|
targetRef: rootRef,
|
|
274
271
|
placement: popupDirection,
|
|
275
272
|
scrollBoxRef: scrollBoxRef,
|
|
276
|
-
observableRefs: observableRefs,
|
|
277
273
|
onPlacementChange: onPlacementChange,
|
|
278
274
|
onMouseLeave: onDropdownMouseLeave,
|
|
279
275
|
fetching: fetching,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipsSelect.js","names":["React","DropdownIcon","classNames","noop","ChipsInputBase","chipsInputDefaultProps","CustomSelectOption","useChipsSelect","useDOM","Footnote","useExternRef","useGlobalEventListener","defaultFilterFn","CustomSelectDropdown","FormField","IconButton","FOCUS_ACTION_NEXT","FOCUS_ACTION_PREV","chipsSelectDefaultProps","emptyText","creatableText","onChangeStart","creatable","fetching","showSelected","closeAfterSelect","options","filterFn","renderOption","props","ChipsSelect","propsWithDefault","style","onFocus","onKeyDown","className","getRef","getRootRef","disabled","placeholder","tabIndex","getOptionValue","getOptionLabel","getNewOptionData","renderChip","popupDirection","inputValue","before","fixDropdownWidth","forceDropdownPortal","restProps","document","useState","undefined","popperPlacement","setPopperPlacement","scrollBoxRef","useRef","rootRef","fieldValue","selectedOptions","opened","setOpened","addOptionFromInput","filteredOptions","addOption","handleInputChange","clearInput","focusedOption","setFocusedOption","focusedOptionIndex","setFocusedOptionIndex","showCreatable","Boolean","length","handleFocus","e","handleClickOutside","target","current","contains","chipsSelectOptions","scrollToElement","index","center","dropdown","item","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","focusOptionByIndex","oldIndex","focusOption","nextIndex","type","handleKeyDown","key","defaultPrevented","preventDefault","option","includes","useEffect","findIndex","value","renderChipWrapper","renderChipProps","onRemoveWrapper","stopPropagation","onRemove","isPopperDirectionTop","onPlacementChange","useCallback","placement","onDropdownMouseLeave","observableRefs","useMemo","toggleOpened","prevOpened","readOnly","map","label","hovered","selected","find","selectedOption","children","onMouseDown","onMouseEnter"],"sources":["../../../../src/components/ChipsSelect/ChipsSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { ChipOption, ChipValue, RenderChip } from '../Chip/Chip';\nimport { ChipsInputProps } from '../ChipsInput/ChipsInput';\nimport { ChipsInputBase, chipsInputDefaultProps } from '../ChipsInputBase/ChipsInputBase';\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from '../CustomSelectOption/CustomSelectOption';\nimport { useChipsSelect } from '../../hooks/useChipsSelect';\nimport { useDOM } from '../../lib/dom';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { defaultFilterFn } from '../../lib/select';\nimport { Placement } from '../Popper/Popper';\nimport { CustomSelectDropdown } from '../CustomSelectDropdown/CustomSelectDropdown';\nimport { FormField } from '../FormField/FormField';\nimport { IconButton } from '../IconButton/IconButton';\nimport styles from './ChipsSelect.module.css';\n\nexport interface ChipsSelectProps<Option extends ChipOption>\n extends Omit<ChipsInputProps<Option>, 'after'> {\n popupDirection?: 'top' | 'bottom';\n options?: Option[];\n filterFn?:\n | false\n | ((\n value?: string,\n option?: Option,\n getOptionLabel?: Pick<ChipsInputProps<Option>, 'getOptionLabel'>['getOptionLabel'],\n ) => boolean);\n /**\n * Возможность создавать чипы которых нет в списке (по enter или с помощью пункта в меню, см creatableText)\n */\n creatable?: boolean;\n /**\n * Отрисовка лоадера вместо списка опций в выпадающем списке\n */\n fetching?: boolean;\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Показывать или скрывать уже выбранные опции\n */\n showSelected?: boolean;\n /**\n * Текст для пункта создающего чипы при клике, так же отвечает за то будет ли показан этот пункт (показывается после того как в списке не отсанется опций)\n */\n creatableText?: string;\n /**\n * Текст который показывается если список опций пуст\n */\n emptyText?: string;\n /**\n * Событие срабатывающее перед onChange\n */\n onChangeStart?: (e: React.MouseEvent | React.KeyboardEvent, option: Option) => void;\n /**\n * Закрытие выпадающего списка после выбора элемента\n */\n closeAfterSelect?: boolean;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n}\n\ntype FocusActionType = 'next' | 'prev';\n\nconst FOCUS_ACTION_NEXT: FocusActionType = 'next';\nconst FOCUS_ACTION_PREV: FocusActionType = 'prev';\n\nconst chipsSelectDefaultProps: ChipsSelectProps<any> = {\n ...chipsInputDefaultProps,\n emptyText: 'Ничего не найдено',\n creatableText: 'Создать значение',\n onChangeStart: noop,\n creatable: false,\n fetching: false,\n showSelected: true,\n closeAfterSelect: true,\n options: [],\n filterFn: defaultFilterFn,\n renderOption(props) {\n return <CustomSelectOption {...props} />;\n },\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ChipsSelect\n */\nexport const ChipsSelect = <Option extends ChipOption>(props: ChipsSelectProps<Option>) => {\n const propsWithDefault = { ...chipsSelectDefaultProps, ...props };\n const {\n style,\n onFocus,\n onKeyDown,\n className,\n fetching,\n renderOption,\n emptyText,\n getRef,\n getRootRef,\n disabled,\n placeholder,\n tabIndex,\n getOptionValue,\n getOptionLabel,\n showSelected,\n getNewOptionData,\n renderChip,\n popupDirection,\n creatable,\n filterFn,\n inputValue,\n creatableText,\n closeAfterSelect,\n onChangeStart,\n before,\n options,\n fixDropdownWidth,\n forceDropdownPortal,\n ...restProps\n } = propsWithDefault;\n\n const { document } = useDOM();\n\n const [popperPlacement, setPopperPlacement] = React.useState<Placement | undefined>(undefined);\n\n const scrollBoxRef = React.useRef<HTMLDivElement>(null);\n const rootRef = useExternRef(getRef);\n const {\n fieldValue,\n selectedOptions = [],\n opened,\n setOpened,\n addOptionFromInput,\n filteredOptions,\n addOption,\n handleInputChange,\n clearInput,\n focusedOption,\n setFocusedOption,\n focusedOptionIndex,\n setFocusedOptionIndex,\n } = useChipsSelect(propsWithDefault);\n\n const showCreatable = Boolean(\n creatable && creatableText && !filteredOptions.length && fieldValue,\n );\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setOpened(true);\n setFocusedOptionIndex(0);\n onFocus!(e);\n };\n\n const handleClickOutside = (e: MouseEvent) => {\n if (e.target !== rootRef.current && !rootRef.current?.contains(e.target as Node)) {\n setOpened(false);\n }\n };\n\n const chipsSelectOptions = React.useRef<HTMLElement[]>([]).current;\n\n const scrollToElement = (index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = chipsSelectOptions[index];\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n };\n\n const focusOptionByIndex = (index: number, oldIndex: number) => {\n const { length } = filteredOptions;\n\n if (index < 0) {\n index = length - 1;\n } else if (index >= length) {\n index = 0;\n }\n\n if (index === oldIndex) {\n return;\n }\n\n scrollToElement(index);\n setFocusedOptionIndex(index);\n };\n\n const focusOption = (nextIndex: number | null, type: FocusActionType) => {\n let index = typeof nextIndex !== 'number' ? -1 : nextIndex;\n\n if (type === FOCUS_ACTION_NEXT) {\n index = index + 1;\n } else if (type === FOCUS_ACTION_PREV) {\n index = index - 1;\n }\n\n if (focusedOptionIndex != null) {\n focusOptionByIndex(index, focusedOptionIndex);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown!(e);\n\n if (e.key === 'ArrowUp' && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_PREV);\n }\n }\n\n if (e.key === 'ArrowDown' && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_NEXT);\n }\n }\n\n if (e.key === 'Enter' && !e.defaultPrevented && opened && focusedOptionIndex != null) {\n const option = filteredOptions[focusedOptionIndex];\n\n if (option) {\n onChangeStart!(e, option);\n\n if (!e.defaultPrevented) {\n addOption(option);\n setFocusedOptionIndex(null);\n clearInput();\n closeAfterSelect && setOpened(false);\n e.preventDefault();\n }\n } else if (!creatable) {\n e.preventDefault();\n }\n }\n\n if (['Escape', 'Tab'].includes(e.key) && !e.defaultPrevented && opened) {\n setOpened(false);\n }\n };\n\n React.useEffect(() => {\n if (focusedOptionIndex != null && filteredOptions[focusedOptionIndex]) {\n setFocusedOption(filteredOptions[focusedOptionIndex]);\n } else if (focusedOptionIndex === null || focusedOptionIndex === 0) {\n setFocusedOption(null);\n }\n }, [focusedOptionIndex, filteredOptions, setFocusedOption]);\n\n React.useEffect(() => {\n const index = focusedOption\n ? filteredOptions.findIndex(({ value }) => value === focusedOption.value)\n : -1;\n\n if (index === -1 && !!filteredOptions.length && !showCreatable && closeAfterSelect) {\n setFocusedOption(filteredOptions[0]);\n }\n }, [filteredOptions, focusedOption, showCreatable, closeAfterSelect, setFocusedOption]);\n\n useGlobalEventListener(document, 'click', handleClickOutside);\n\n const renderChipWrapper = (renderChipProps: RenderChip<Option> | undefined) => {\n if (renderChipProps === undefined) {\n return null;\n }\n const onRemoveWrapper = (e: React.MouseEvent | undefined, value: ChipValue | undefined) => {\n e?.preventDefault();\n e?.stopPropagation();\n\n renderChipProps.onRemove?.(e, value);\n };\n\n return renderChip!({\n ...renderChipProps,\n onRemove: onRemoveWrapper,\n });\n };\n\n const isPopperDirectionTop = popperPlacement?.includes('top');\n\n const onPlacementChange = React.useCallback(\n (placement?: Placement) => {\n setPopperPlacement(placement);\n },\n [setPopperPlacement],\n );\n\n const onDropdownMouseLeave = React.useCallback(() => {\n setFocusedOptionIndex(null);\n }, [setFocusedOptionIndex]);\n\n const observableRefs = React.useMemo(() => [scrollBoxRef, rootRef], [rootRef, scrollBoxRef]);\n\n const toggleOpened = () => {\n setOpened((prevOpened) => !prevOpened);\n };\n\n return (\n <>\n <FormField\n getRootRef={rootRef}\n style={style}\n className={classNames(\n styles['ChipsSelect'],\n opened &&\n (isPopperDirectionTop\n ? styles['ChipsSelect--pop-up']\n : styles['ChipsSelect--pop-down']),\n className,\n )}\n disabled={disabled}\n role=\"application\"\n aria-disabled={disabled}\n aria-readonly={restProps.readOnly}\n after={\n <IconButton\n className={styles['ChipsSelect__dropdown']}\n activeMode=\"\"\n hoverMode=\"\"\n // TODO: add label customization\n aria-label={opened ? 'Скрыть' : 'Развернуть'}\n onClick={toggleOpened}\n >\n <DropdownIcon className={styles['ChipsSelect__icon']} opened={opened} />\n </IconButton>\n }\n before={before}\n >\n <ChipsInputBase\n {...restProps}\n tabIndex={tabIndex}\n value={selectedOptions}\n inputValue={fieldValue}\n getNewOptionData={getNewOptionData}\n getOptionLabel={getOptionLabel}\n getOptionValue={getOptionValue}\n renderChip={renderChipWrapper}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n getRef={getRef}\n disabled={disabled}\n onInputChange={handleInputChange}\n />\n </FormField>\n {opened && (\n <CustomSelectDropdown\n targetRef={rootRef}\n placement={popupDirection}\n scrollBoxRef={scrollBoxRef}\n observableRefs={observableRefs}\n onPlacementChange={onPlacementChange}\n onMouseLeave={onDropdownMouseLeave}\n fetching={fetching}\n className={styles['ChipsSelect__options']}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n >\n {showCreatable && (\n <CustomSelectOption\n hovered={focusedOptionIndex === 0}\n onMouseDown={addOptionFromInput}\n onMouseEnter={() => setFocusedOptionIndex(0)}\n >\n {creatableText}\n </CustomSelectOption>\n )}\n {!filteredOptions?.length && !showCreatable && emptyText ? (\n <Footnote className={styles['ChipsSelect__empty']}>{emptyText}</Footnote>\n ) : (\n filteredOptions.map((option: Option, index: number) => {\n const label = getOptionLabel!(option);\n const hovered =\n focusedOption && getOptionValue!(option) === getOptionValue!(focusedOption);\n const selected = selectedOptions.find((selectedOption: Option) => {\n return getOptionValue!(selectedOption) === getOptionValue!(option);\n });\n const value = getOptionValue!(option);\n\n return (\n <React.Fragment key={`${typeof value}-${value}`}>\n {renderOption!({\n className: styles['ChipsSelect__option'],\n option,\n hovered: Boolean(hovered),\n children: label,\n selected: !!selected,\n getRootRef: (e) => {\n if (e) {\n return (chipsSelectOptions[index] = e);\n }\n return undefined;\n },\n onMouseDown: (e: React.MouseEvent<HTMLDivElement>) => {\n onChangeStart?.(e, option);\n\n if (!e.defaultPrevented) {\n closeAfterSelect && setOpened(false);\n addOption(option);\n clearInput();\n }\n },\n onMouseEnter: () => setFocusedOptionIndex(index),\n })}\n </React.Fragment>\n );\n })\n )}\n </CustomSelectDropdown>\n )}\n </>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChipsSelect.js","names":["React","DropdownIcon","classNames","noop","ChipsInputBase","chipsInputDefaultProps","CustomSelectOption","useChipsSelect","useDOM","Footnote","useExternRef","useGlobalEventListener","defaultFilterFn","CustomSelectDropdown","FormField","IconButton","FOCUS_ACTION_NEXT","FOCUS_ACTION_PREV","chipsSelectDefaultProps","emptyText","creatableText","onChangeStart","creatable","fetching","showSelected","closeAfterSelect","options","filterFn","renderOption","props","ChipsSelect","propsWithDefault","style","onFocus","onKeyDown","className","getRef","getRootRef","disabled","placeholder","tabIndex","getOptionValue","getOptionLabel","getNewOptionData","renderChip","popupDirection","inputValue","before","fixDropdownWidth","forceDropdownPortal","restProps","document","useState","undefined","popperPlacement","setPopperPlacement","scrollBoxRef","useRef","rootRef","fieldValue","selectedOptions","opened","setOpened","addOptionFromInput","filteredOptions","addOption","handleInputChange","clearInput","focusedOption","setFocusedOption","focusedOptionIndex","setFocusedOptionIndex","showCreatable","Boolean","length","handleFocus","e","handleClickOutside","target","current","contains","chipsSelectOptions","scrollToElement","index","center","dropdown","item","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","focusOptionByIndex","oldIndex","focusOption","nextIndex","type","handleKeyDown","key","defaultPrevented","preventDefault","option","includes","useEffect","findIndex","value","renderChipWrapper","renderChipProps","onRemoveWrapper","stopPropagation","onRemove","isPopperDirectionTop","onPlacementChange","useCallback","placement","onDropdownMouseLeave","toggleOpened","prevOpened","readOnly","map","label","hovered","selected","find","selectedOption","children","onMouseDown","onMouseEnter"],"sources":["../../../../src/components/ChipsSelect/ChipsSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { ChipOption, ChipValue, RenderChip } from '../Chip/Chip';\nimport { ChipsInputProps } from '../ChipsInput/ChipsInput';\nimport { ChipsInputBase, chipsInputDefaultProps } from '../ChipsInputBase/ChipsInputBase';\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from '../CustomSelectOption/CustomSelectOption';\nimport { useChipsSelect } from '../../hooks/useChipsSelect';\nimport { useDOM } from '../../lib/dom';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { defaultFilterFn } from '../../lib/select';\nimport type { Placement } from '../../lib/floating';\nimport { CustomSelectDropdown } from '../CustomSelectDropdown/CustomSelectDropdown';\nimport { FormField } from '../FormField/FormField';\nimport { IconButton } from '../IconButton/IconButton';\nimport styles from './ChipsSelect.module.css';\n\nexport interface ChipsSelectProps<Option extends ChipOption>\n extends Omit<ChipsInputProps<Option>, 'after'> {\n popupDirection?: 'top' | 'bottom';\n options?: Option[];\n filterFn?:\n | false\n | ((\n value?: string,\n option?: Option,\n getOptionLabel?: Pick<ChipsInputProps<Option>, 'getOptionLabel'>['getOptionLabel'],\n ) => boolean);\n /**\n * Возможность создавать чипы которых нет в списке (по enter или с помощью пункта в меню, см creatableText)\n */\n creatable?: boolean;\n /**\n * Отрисовка лоадера вместо списка опций в выпадающем списке\n */\n fetching?: boolean;\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Показывать или скрывать уже выбранные опции\n */\n showSelected?: boolean;\n /**\n * Текст для пункта создающего чипы при клике, так же отвечает за то будет ли показан этот пункт (показывается после того как в списке не отсанется опций)\n */\n creatableText?: string;\n /**\n * Текст который показывается если список опций пуст\n */\n emptyText?: string;\n /**\n * Событие срабатывающее перед onChange\n */\n onChangeStart?: (e: React.MouseEvent | React.KeyboardEvent, option: Option) => void;\n /**\n * Закрытие выпадающего списка после выбора элемента\n */\n closeAfterSelect?: boolean;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n}\n\ntype FocusActionType = 'next' | 'prev';\n\nconst FOCUS_ACTION_NEXT: FocusActionType = 'next';\nconst FOCUS_ACTION_PREV: FocusActionType = 'prev';\n\nconst chipsSelectDefaultProps: ChipsSelectProps<any> = {\n ...chipsInputDefaultProps,\n emptyText: 'Ничего не найдено',\n creatableText: 'Создать значение',\n onChangeStart: noop,\n creatable: false,\n fetching: false,\n showSelected: true,\n closeAfterSelect: true,\n options: [],\n filterFn: defaultFilterFn,\n renderOption(props) {\n return <CustomSelectOption {...props} />;\n },\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ChipsSelect\n */\nexport const ChipsSelect = <Option extends ChipOption>(props: ChipsSelectProps<Option>) => {\n const propsWithDefault = { ...chipsSelectDefaultProps, ...props };\n const {\n style,\n onFocus,\n onKeyDown,\n className,\n fetching,\n renderOption,\n emptyText,\n getRef,\n getRootRef,\n disabled,\n placeholder,\n tabIndex,\n getOptionValue,\n getOptionLabel,\n showSelected,\n getNewOptionData,\n renderChip,\n popupDirection,\n creatable,\n filterFn,\n inputValue,\n creatableText,\n closeAfterSelect,\n onChangeStart,\n before,\n options,\n fixDropdownWidth,\n forceDropdownPortal,\n ...restProps\n } = propsWithDefault;\n\n const { document } = useDOM();\n\n const [popperPlacement, setPopperPlacement] = React.useState<Placement | undefined>(undefined);\n\n const scrollBoxRef = React.useRef<HTMLDivElement>(null);\n const rootRef = useExternRef(getRef);\n const {\n fieldValue,\n selectedOptions = [],\n opened,\n setOpened,\n addOptionFromInput,\n filteredOptions,\n addOption,\n handleInputChange,\n clearInput,\n focusedOption,\n setFocusedOption,\n focusedOptionIndex,\n setFocusedOptionIndex,\n } = useChipsSelect(propsWithDefault);\n\n const showCreatable = Boolean(\n creatable && creatableText && !filteredOptions.length && fieldValue,\n );\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setOpened(true);\n setFocusedOptionIndex(0);\n onFocus!(e);\n };\n\n const handleClickOutside = (e: MouseEvent) => {\n if (e.target !== rootRef.current && !rootRef.current?.contains(e.target as Node)) {\n setOpened(false);\n }\n };\n\n const chipsSelectOptions = React.useRef<HTMLElement[]>([]).current;\n\n const scrollToElement = (index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = chipsSelectOptions[index];\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n };\n\n const focusOptionByIndex = (index: number, oldIndex: number) => {\n const { length } = filteredOptions;\n\n if (index < 0) {\n index = length - 1;\n } else if (index >= length) {\n index = 0;\n }\n\n if (index === oldIndex) {\n return;\n }\n\n scrollToElement(index);\n setFocusedOptionIndex(index);\n };\n\n const focusOption = (nextIndex: number | null, type: FocusActionType) => {\n let index = typeof nextIndex !== 'number' ? -1 : nextIndex;\n\n if (type === FOCUS_ACTION_NEXT) {\n index = index + 1;\n } else if (type === FOCUS_ACTION_PREV) {\n index = index - 1;\n }\n\n if (focusedOptionIndex != null) {\n focusOptionByIndex(index, focusedOptionIndex);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown!(e);\n\n if (e.key === 'ArrowUp' && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_PREV);\n }\n }\n\n if (e.key === 'ArrowDown' && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_NEXT);\n }\n }\n\n if (e.key === 'Enter' && !e.defaultPrevented && opened && focusedOptionIndex != null) {\n const option = filteredOptions[focusedOptionIndex];\n\n if (option) {\n onChangeStart!(e, option);\n\n if (!e.defaultPrevented) {\n addOption(option);\n setFocusedOptionIndex(null);\n clearInput();\n closeAfterSelect && setOpened(false);\n e.preventDefault();\n }\n } else if (!creatable) {\n e.preventDefault();\n }\n }\n\n if (['Escape', 'Tab'].includes(e.key) && !e.defaultPrevented && opened) {\n setOpened(false);\n }\n };\n\n React.useEffect(() => {\n if (focusedOptionIndex != null && filteredOptions[focusedOptionIndex]) {\n setFocusedOption(filteredOptions[focusedOptionIndex]);\n } else if (focusedOptionIndex === null || focusedOptionIndex === 0) {\n setFocusedOption(null);\n }\n }, [focusedOptionIndex, filteredOptions, setFocusedOption]);\n\n React.useEffect(() => {\n const index = focusedOption\n ? filteredOptions.findIndex(({ value }) => value === focusedOption.value)\n : -1;\n\n if (index === -1 && !!filteredOptions.length && !showCreatable && closeAfterSelect) {\n setFocusedOption(filteredOptions[0]);\n }\n }, [filteredOptions, focusedOption, showCreatable, closeAfterSelect, setFocusedOption]);\n\n useGlobalEventListener(document, 'click', handleClickOutside);\n\n const renderChipWrapper = (renderChipProps: RenderChip<Option> | undefined) => {\n if (renderChipProps === undefined) {\n return null;\n }\n const onRemoveWrapper = (e: React.MouseEvent | undefined, value: ChipValue | undefined) => {\n e?.preventDefault();\n e?.stopPropagation();\n\n renderChipProps.onRemove?.(e, value);\n };\n\n return renderChip!({\n ...renderChipProps,\n onRemove: onRemoveWrapper,\n });\n };\n\n const isPopperDirectionTop = popperPlacement?.includes('top');\n\n const onPlacementChange = React.useCallback(\n (placement?: Placement) => {\n setPopperPlacement(placement);\n },\n [setPopperPlacement],\n );\n\n const onDropdownMouseLeave = React.useCallback(() => {\n setFocusedOptionIndex(null);\n }, [setFocusedOptionIndex]);\n\n const toggleOpened = () => {\n setOpened((prevOpened) => !prevOpened);\n };\n\n return (\n <>\n <FormField\n getRootRef={rootRef}\n style={style}\n className={classNames(\n styles['ChipsSelect'],\n opened &&\n (isPopperDirectionTop\n ? styles['ChipsSelect--pop-up']\n : styles['ChipsSelect--pop-down']),\n className,\n )}\n disabled={disabled}\n role=\"application\"\n aria-disabled={disabled}\n aria-readonly={restProps.readOnly}\n after={\n <IconButton\n className={styles['ChipsSelect__dropdown']}\n activeMode=\"\"\n hoverMode=\"\"\n // TODO: add label customization\n aria-label={opened ? 'Скрыть' : 'Развернуть'}\n onClick={toggleOpened}\n >\n <DropdownIcon className={styles['ChipsSelect__icon']} opened={opened} />\n </IconButton>\n }\n before={before}\n >\n <ChipsInputBase\n {...restProps}\n tabIndex={tabIndex}\n value={selectedOptions}\n inputValue={fieldValue}\n getNewOptionData={getNewOptionData}\n getOptionLabel={getOptionLabel}\n getOptionValue={getOptionValue}\n renderChip={renderChipWrapper}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n getRef={getRef}\n disabled={disabled}\n onInputChange={handleInputChange}\n />\n </FormField>\n {opened && (\n <CustomSelectDropdown\n targetRef={rootRef}\n placement={popupDirection}\n scrollBoxRef={scrollBoxRef}\n onPlacementChange={onPlacementChange}\n onMouseLeave={onDropdownMouseLeave}\n fetching={fetching}\n className={styles['ChipsSelect__options']}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n >\n {showCreatable && (\n <CustomSelectOption\n hovered={focusedOptionIndex === 0}\n onMouseDown={addOptionFromInput}\n onMouseEnter={() => setFocusedOptionIndex(0)}\n >\n {creatableText}\n </CustomSelectOption>\n )}\n {!filteredOptions?.length && !showCreatable && emptyText ? (\n <Footnote className={styles['ChipsSelect__empty']}>{emptyText}</Footnote>\n ) : (\n filteredOptions.map((option: Option, index: number) => {\n const label = getOptionLabel!(option);\n const hovered =\n focusedOption && getOptionValue!(option) === getOptionValue!(focusedOption);\n const selected = selectedOptions.find((selectedOption: Option) => {\n return getOptionValue!(selectedOption) === getOptionValue!(option);\n });\n const value = getOptionValue!(option);\n\n return (\n <React.Fragment key={`${typeof value}-${value}`}>\n {renderOption!({\n className: styles['ChipsSelect__option'],\n option,\n hovered: Boolean(hovered),\n children: label,\n selected: !!selected,\n getRootRef: (e) => {\n if (e) {\n return (chipsSelectOptions[index] = e);\n }\n return undefined;\n },\n onMouseDown: (e: React.MouseEvent<HTMLDivElement>) => {\n onChangeStart?.(e, option);\n\n if (!e.defaultPrevented) {\n closeAfterSelect && setOpened(false);\n addOption(option);\n clearInput();\n }\n },\n onMouseEnter: () => setFocusedOptionIndex(index),\n })}\n </React.Fragment>\n );\n })\n )}\n </CustomSelectDropdown>\n )}\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiChipsSelect{position:relative}.vkuiChipsSelect__dropdown{cursor:pointer}.vkuiChipsSelect__icon{pointer-events:none}.vkuiChipsSelect__empty{color:var(--vkui--color_text_secondary);padding:12px 0;text-align:center}.vkuiChipsSelect--pop-down{border-bottom-left-radius:0;border-bottom-right-radius:0}.vkuiChipsSelect--pop-up{border-top-left-radius:0;border-top-right-radius:0}
|
|
1
|
+
.vkuiChipsSelect{position:relative}.vkuiChipsSelect__dropdown{cursor:pointer}.vkuiChipsSelect__icon{pointer-events:none}.vkuiChipsSelect__empty{color:#818c99;color:var(--vkui--color_text_secondary);padding:12px 0;text-align:center}.vkuiChipsSelect--pop-down{border-bottom-left-radius:0;border-bottom-right-radius:0}.vkuiChipsSelect--pop-up{border-top-left-radius:0;border-top-right-radius:0}
|
|
@@ -27,7 +27,8 @@ export var ContentCard = function ContentCard(_ref) {
|
|
|
27
27
|
maxHeight = _ref.maxHeight,
|
|
28
28
|
src = _ref.src,
|
|
29
29
|
srcSet = _ref.srcSet,
|
|
30
|
-
alt = _ref.alt,
|
|
30
|
+
_ref$alt = _ref.alt,
|
|
31
|
+
alt = _ref$alt === void 0 ? '' : _ref$alt,
|
|
31
32
|
width = _ref.width,
|
|
32
33
|
height = _ref.height,
|
|
33
34
|
crossOrigin = _ref.crossOrigin,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentCard.js","names":["React","Card","Caption","Footnote","Headline","Text","Tappable","classNames","hasReactNode","ContentCard","subtitle","header","text","caption","className","mode","style","getRootRef","getRef","maxHeight","src","srcSet","alt","width","height","crossOrigin","decoding","loading","referrerPolicy","sizes","useMap","hasHover","hasActive","restProps","disabled","onClick","href"],"sources":["../../../../src/components/ContentCard/ContentCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Card, CardProps } from '../Card/Card';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Text } from '../Typography/Text/Text';\nimport { TappableProps, Tappable } from '../Tappable/Tappable';\nimport { HasRef, HasRootRef } from '../../types';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport styles from './ContentCard.module.css';\n\nexport interface ContentCardProps\n extends HasRootRef<HTMLDivElement>,\n Omit<TappableProps, 'getRootRef' | 'crossOrigin'>,\n Omit<React.ImgHTMLAttributes<HTMLImageElement>, keyof React.HTMLAttributes<HTMLImageElement>>,\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 Максимальная высота изображения\n */\n maxHeight?: number;\n mode?: CardProps['mode'];\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ContentCard\n */\nexport const ContentCard = ({\n subtitle,\n header,\n text,\n caption,\n // card props\n className,\n mode = 'shadow',\n style,\n getRootRef,\n // img props\n getRef,\n maxHeight,\n src,\n srcSet,\n alt,\n width,\n height,\n crossOrigin,\n decoding,\n loading,\n referrerPolicy,\n sizes,\n useMap,\n hasHover = false,\n hasActive = false,\n ...restProps\n}: ContentCardProps) => {\n return (\n <Card\n mode={mode}\n getRootRef={getRootRef}\n style={style}\n className={classNames(\n styles['ContentCard'],\n restProps.disabled && styles['ContentCard--disabled'],\n className,\n )}\n >\n <Tappable\n {...restProps}\n disabled={restProps.disabled || (!restProps.onClick && !restProps.href)}\n hasHover={hasHover}\n hasActive={hasActive}\n className={styles['ContentCard__tappable']}\n >\n {(src || srcSet) && (\n <img\n ref={getRef}\n className={styles['ContentCard__img']}\n src={src}\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 className={styles['ContentCard__body']}>\n {hasReactNode(subtitle) && (\n <Caption\n className={classNames(styles['ContentCard__text'], styles['ContentCard__subtitle'])}\n weight=\"1\"\n level=\"3\"\n caps\n >\n {subtitle}\n </Caption>\n )}\n {hasReactNode(header) && (\n <Headline className={styles['ContentCard__text']} weight=\"2\" level=\"1\">\n {header}\n </Headline>\n )}\n {hasReactNode(text) && <Text className={styles['ContentCard__text']}>{text}</Text>}\n {hasReactNode(caption) && (\n <Footnote\n className={classNames(styles['ContentCard__text'], styles['ContentCard__caption'])}\n >\n {caption}\n </Footnote>\n )}\n </div>\n </Tappable>\n </Card>\n );\n};\n"],"mappings":";;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,IAAI,QAAmB,cAAc;AAC9C,SAASC,OAAO,QAAQ,+BAA+B;AACvD,SAASC,QAAQ,QAAQ,iCAAiC;AAC1D,SAASC,QAAQ,QAAQ,iCAAiC;AAC1D,SAASC,IAAI,QAAQ,yBAAyB;AAC9C,SAAwBC,QAAQ,QAAQ,sBAAsB;AAE9D,SAASC,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAAC;AA+B3D;AACA;AACA;AACA,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAW,OA2BA;EAAA,IA1BtBC,QAAQ,QAARA,QAAQ;IACRC,MAAM,QAANA,MAAM;IACNC,IAAI,QAAJA,IAAI;IACJC,OAAO,QAAPA,OAAO;IAEPC,SAAS,QAATA,SAAS;IAAA,iBACTC,IAAI;IAAJA,IAAI,0BAAG,QAAQ;IACfC,KAAK,QAALA,KAAK;IACLC,UAAU,QAAVA,UAAU;IAEVC,MAAM,QAANA,MAAM;IACNC,SAAS,QAATA,SAAS;IACTC,GAAG,QAAHA,GAAG;IACHC,MAAM,QAANA,MAAM;
|
|
1
|
+
{"version":3,"file":"ContentCard.js","names":["React","Card","Caption","Footnote","Headline","Text","Tappable","classNames","hasReactNode","ContentCard","subtitle","header","text","caption","className","mode","style","getRootRef","getRef","maxHeight","src","srcSet","alt","width","height","crossOrigin","decoding","loading","referrerPolicy","sizes","useMap","hasHover","hasActive","restProps","disabled","onClick","href"],"sources":["../../../../src/components/ContentCard/ContentCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Card, CardProps } from '../Card/Card';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Text } from '../Typography/Text/Text';\nimport { TappableProps, Tappable } from '../Tappable/Tappable';\nimport { HasRef, HasRootRef } from '../../types';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport styles from './ContentCard.module.css';\n\nexport interface ContentCardProps\n extends HasRootRef<HTMLDivElement>,\n Omit<TappableProps, 'getRootRef' | 'crossOrigin'>,\n Omit<React.ImgHTMLAttributes<HTMLImageElement>, keyof React.HTMLAttributes<HTMLImageElement>>,\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 Максимальная высота изображения\n */\n maxHeight?: number;\n mode?: CardProps['mode'];\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ContentCard\n */\nexport const ContentCard = ({\n subtitle,\n header,\n text,\n caption,\n // card props\n className,\n mode = 'shadow',\n style,\n getRootRef,\n // img props\n getRef,\n maxHeight,\n src,\n srcSet,\n alt = '',\n width,\n height,\n crossOrigin,\n decoding,\n loading,\n referrerPolicy,\n sizes,\n useMap,\n hasHover = false,\n hasActive = false,\n ...restProps\n}: ContentCardProps) => {\n return (\n <Card\n mode={mode}\n getRootRef={getRootRef}\n style={style}\n className={classNames(\n styles['ContentCard'],\n restProps.disabled && styles['ContentCard--disabled'],\n className,\n )}\n >\n <Tappable\n {...restProps}\n disabled={restProps.disabled || (!restProps.onClick && !restProps.href)}\n hasHover={hasHover}\n hasActive={hasActive}\n className={styles['ContentCard__tappable']}\n >\n {(src || srcSet) && (\n <img\n ref={getRef}\n className={styles['ContentCard__img']}\n src={src}\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 className={styles['ContentCard__body']}>\n {hasReactNode(subtitle) && (\n <Caption\n className={classNames(styles['ContentCard__text'], styles['ContentCard__subtitle'])}\n weight=\"1\"\n level=\"3\"\n caps\n >\n {subtitle}\n </Caption>\n )}\n {hasReactNode(header) && (\n <Headline className={styles['ContentCard__text']} weight=\"2\" level=\"1\">\n {header}\n </Headline>\n )}\n {hasReactNode(text) && <Text className={styles['ContentCard__text']}>{text}</Text>}\n {hasReactNode(caption) && (\n <Footnote\n className={classNames(styles['ContentCard__text'], styles['ContentCard__caption'])}\n >\n {caption}\n </Footnote>\n )}\n </div>\n </Tappable>\n </Card>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiContentCard--disabled{opacity:var(--vkui--opacity_disable_accessibility)}.vkuiContentCard__body{padding:var(--vkui--size_base_padding_vertical--regular) var(--vkui--size_base_padding_horizontal--regular)}.vkuiContentCard__tappable{border-radius:var(--vkui--size_card_border_radius--regular);color:var(--vkui--color_text_primary);display:block;text-decoration:none}.vkuiContentCard__img{border-radius:var(--vkui--size_card_border_radius--regular) var(--vkui--size_card_border_radius--regular) 0 0;display:block;object-fit:cover}.vkuiContentCard__text:not(:last-child){margin-bottom:4px}.vkuiContentCard__caption,.vkuiContentCard__subtitle{color:var(--vkui--color_text_secondary)}
|
|
1
|
+
.vkuiContentCard--disabled{opacity:.64;opacity:var(--vkui--opacity_disable_accessibility)}.vkuiContentCard__body{padding:12px 16px;padding:var(--vkui--size_base_padding_vertical--regular) var(--vkui--size_base_padding_horizontal--regular)}.vkuiContentCard__tappable{border-radius:8px;border-radius:var(--vkui--size_card_border_radius--regular);color:#000;color:var(--vkui--color_text_primary);display:block;text-decoration:none}.vkuiContentCard__img{border-radius:8px 8px 0 0;border-radius:var(--vkui--size_card_border_radius--regular) var(--vkui--size_card_border_radius--regular) 0 0;display:block;object-fit:cover}.vkuiContentCard__text:not(:last-child){margin-bottom:4px}.vkuiContentCard__caption,.vkuiContentCard__subtitle{color:#818c99;color:var(--vkui--color_text_secondary)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiCounter{align-items:center;background:var(--vkui--color_icon_tertiary);color:var(--vkui--color_text_contrast);display:flex;justify-content:center}.vkuiCounter__in{box-sizing:border-box;display:block;padding-left:5px;padding-right:5px;text-align:center;width:100%}.vkuiCounter--mode-primary{background:var(--vkui--color_background_accent);color:var(--vkui--color_text_contrast)}.vkuiCounter--mode-prominent{background:var(--vkui--color_accent_red);color:var(--vkui--color_text_contrast)}.vkuiCounter--mode-contrast{background:var(--vkui--color_background_content);color:var(--vkui--color_text_accent_themed)}.vkuiCounter--size-m{border-radius:12px;height:24px;min-width:24px}.vkuiCounter--size-s{border-radius:9px;height:18px;min-width:18px}.vkuiButton--mode-primary.vkuiButton--appearance-accent .vkuiCounter--mode-inherit{background-color:var(--vkui--color_background_content);color:var(--vkui--color_text_accent_themed)}.vkuiButton--mode-outline.vkuiButton--appearance-accent .vkuiCounter--mode-inherit,.vkuiButton--mode-secondary.vkuiButton--appearance-accent .vkuiCounter--mode-inherit,.vkuiButton--mode-tertiary.vkuiButton--appearance-accent .vkuiCounter--mode-inherit{background-color:var(--vkui--color_background_accent_themed);color:var(--vkui--color_text_contrast_themed)}.vkuiButton--mode-primary.vkuiButton--appearance-positive .vkuiCounter--mode-inherit{background-color:var(--vkui--color_background_contrast);color:var(--vkui--color_text_positive)}.vkuiButton--mode-outline.vkuiButton--appearance-positive .vkuiCounter--mode-inherit,.vkuiButton--mode-secondary.vkuiButton--appearance-positive .vkuiCounter--mode-inherit,.vkuiButton--mode-tertiary.vkuiButton--appearance-positive .vkuiCounter--mode-inherit{background-color:var(--vkui--color_background_positive);color:var(--vkui--color_text_contrast)}.vkuiButton--mode-primary.vkuiButton--appearance-negative .vkuiCounter--mode-inherit{background-color:var(--vkui--color_background_contrast);color:var(--vkui--color_text_negative)}.vkuiButton--mode-outline.vkuiButton--appearance-negative .vkuiCounter--mode-inherit,.vkuiButton--mode-secondary.vkuiButton--appearance-negative .vkuiCounter--mode-inherit,.vkuiButton--mode-tertiary.vkuiButton--appearance-negative .vkuiCounter--mode-inherit{background-color:var(--vkui--color_background_negative);color:var(--vkui--color_text_contrast)}.vkuiButton--mode-primary.vkuiButton--appearance-neutral .vkuiCounter--mode-inherit{background-color:var(--vkui--color_background_content);color:var(--vkui--color_text_primary_invariably)}.vkuiButton--mode-outline.vkuiButton--appearance-neutral .vkuiCounter--mode-inherit,.vkuiButton--mode-secondary.vkuiButton--appearance-neutral .vkuiCounter--mode-inherit,.vkuiButton--mode-tertiary.vkuiButton--appearance-neutral .vkuiCounter--mode-inherit{background-color:var(--vkui--color_background_accent);color:var(--vkui--color_text_contrast)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay .vkuiCounter--mode-inherit{background-color:var(--vkui--color_icon_primary_invariably);color:var(--vkui--color_text_contrast)}.vkuiButton--mode-outline.vkuiButton--appearance-overlay .vkuiCounter--mode-inherit,.vkuiButton--mode-secondary.vkuiButton--appearance-overlay .vkuiCounter--mode-inherit,.vkuiButton--mode-tertiary.vkuiButton--appearance-overlay .vkuiCounter--mode-inherit{background-color:var(--vkui--color_background_contrast);color:var(--vkui--color_text_primary_invariably)}.vkuiWriteBarIcon .vkuiCounter--mode-inherit{background:var(--vkui--color_background_positive);color:var(--vkui--color_text_contrast)}.vkuiSubnavigationButton .vkuiCounter--mode-inherit{background:var(--vkui--color_background_accent);color:var(--vkui--color_text_contrast)}.vkuiSubnavigationButton--selected:not(.vkuiSubnavigationButton--mode-tertiary) .vkuiCounter--mode-inherit{background-color:var(--vkui--color_background_content);color:var(--vkui--color_text_accent_themed)}
|
|
1
|
+
.vkuiCounter{align-items:center;background:#b8c1cc;background:var(--vkui--color_icon_tertiary);color:#fff;color:var(--vkui--color_text_contrast);display:flex;justify-content:center}.vkuiCounter__in{box-sizing:border-box;display:block;padding-left:5px;padding-right:5px;text-align:center;width:100%}.vkuiCounter--mode-primary{background:#2688eb;background:var(--vkui--color_background_accent);color:#fff;color:var(--vkui--color_text_contrast)}.vkuiCounter--mode-prominent{background:#ff3347;background:var(--vkui--color_accent_red);color:#fff;color:var(--vkui--color_text_contrast)}.vkuiCounter--mode-contrast{background:#fff;background:var(--vkui--color_background_content);color:#2688eb;color:var(--vkui--color_text_accent_themed)}.vkuiCounter--size-m{border-radius:12px;height:24px;min-width:24px}.vkuiCounter--size-s{border-radius:9px;height:18px;min-width:18px}.vkuiButton--mode-primary.vkuiButton--appearance-accent .vkuiCounter--mode-inherit{background-color:#fff;background-color:var(--vkui--color_background_content);color:#2688eb;color:var(--vkui--color_text_accent_themed)}.vkuiButton--mode-outline.vkuiButton--appearance-accent .vkuiCounter--mode-inherit,.vkuiButton--mode-secondary.vkuiButton--appearance-accent .vkuiCounter--mode-inherit,.vkuiButton--mode-tertiary.vkuiButton--appearance-accent .vkuiCounter--mode-inherit{background-color:#2688eb;background-color:var(--vkui--color_background_accent_themed);color:#fff;color:var(--vkui--color_text_contrast_themed)}.vkuiButton--mode-primary.vkuiButton--appearance-positive .vkuiCounter--mode-inherit{background-color:#fff;background-color:var(--vkui--color_background_contrast);color:#4bb34b;color:var(--vkui--color_text_positive)}.vkuiButton--mode-outline.vkuiButton--appearance-positive .vkuiCounter--mode-inherit,.vkuiButton--mode-secondary.vkuiButton--appearance-positive .vkuiCounter--mode-inherit,.vkuiButton--mode-tertiary.vkuiButton--appearance-positive .vkuiCounter--mode-inherit{background-color:#4bb34b;background-color:var(--vkui--color_background_positive);color:#fff;color:var(--vkui--color_text_contrast)}.vkuiButton--mode-primary.vkuiButton--appearance-negative .vkuiCounter--mode-inherit{background-color:#fff;background-color:var(--vkui--color_background_contrast);color:#e64646;color:var(--vkui--color_text_negative)}.vkuiButton--mode-outline.vkuiButton--appearance-negative .vkuiCounter--mode-inherit,.vkuiButton--mode-secondary.vkuiButton--appearance-negative .vkuiCounter--mode-inherit,.vkuiButton--mode-tertiary.vkuiButton--appearance-negative .vkuiCounter--mode-inherit{background-color:#e64646;background-color:var(--vkui--color_background_negative);color:#fff;color:var(--vkui--color_text_contrast)}.vkuiButton--mode-primary.vkuiButton--appearance-neutral .vkuiCounter--mode-inherit{background-color:#fff;background-color:var(--vkui--color_background_content);color:#000;color:var(--vkui--color_text_primary_invariably)}.vkuiButton--mode-outline.vkuiButton--appearance-neutral .vkuiCounter--mode-inherit,.vkuiButton--mode-secondary.vkuiButton--appearance-neutral .vkuiCounter--mode-inherit,.vkuiButton--mode-tertiary.vkuiButton--appearance-neutral .vkuiCounter--mode-inherit{background-color:#2688eb;background-color:var(--vkui--color_background_accent);color:#fff;color:var(--vkui--color_text_contrast)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay .vkuiCounter--mode-inherit{background-color:#2c2d2e;background-color:var(--vkui--color_icon_primary_invariably);color:#fff;color:var(--vkui--color_text_contrast)}.vkuiButton--mode-outline.vkuiButton--appearance-overlay .vkuiCounter--mode-inherit,.vkuiButton--mode-secondary.vkuiButton--appearance-overlay .vkuiCounter--mode-inherit,.vkuiButton--mode-tertiary.vkuiButton--appearance-overlay .vkuiCounter--mode-inherit{background-color:#fff;background-color:var(--vkui--color_background_contrast);color:#000;color:var(--vkui--color_text_primary_invariably)}.vkuiWriteBarIcon .vkuiCounter--mode-inherit{background:#4bb34b;background:var(--vkui--color_background_positive);color:#fff;color:var(--vkui--color_text_contrast)}.vkuiSubnavigationButton .vkuiCounter--mode-inherit{background:#2688eb;background:var(--vkui--color_background_accent);color:#fff;color:var(--vkui--color_text_contrast)}.vkuiSubnavigationButton--selected:not(.vkuiSubnavigationButton--mode-tertiary) .vkuiCounter--mode-inherit{background-color:#fff;background-color:var(--vkui--color_background_content);color:#2688eb;color:var(--vkui--color_text_accent_themed)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiCustomScrollView{height:100%;overflow:hidden;position:relative;width:100%}.vkuiCustomScrollView__box{height:100%;max-height:inherit;overflow-x:hidden;overflow-y:scroll;padding-right:100px;position:relative;scrollbar-width:none;width:100%}.vkuiCustomScrollView__box::-webkit-scrollbar{display:none}.vkuiCustomScrollView__barY:active+.vkuiCustomScrollView__box{pointer-events:none}.vkuiCustomScrollView__barY{height:100%;position:absolute;right:0;top:0;width:10px}.vkuiCustomScrollView__trackerY{box-sizing:border-box;left:0;padding:4px 4px 4px 0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:10px}.vkuiCustomScrollView__trackerY--hidden{opacity:0;transition:opacity .2s}.vkuiCustomScrollView__trackerY:before{background-color:var(--vkui--color_icon_medium);border-radius:12px;content:"";display:block;height:100%;opacity:.48;transition:transform .2s,opacity .2s;width:100%}.vkuiCustomScrollView__trackerY:active:before,.vkuiCustomScrollView__trackerY:hover:before{opacity:.8;transform:scaleX(1.3333)}.vkuiCustomSelectDropdown .vkuiCustomScrollView__box{padding-right:8px}.vkuiCustomSelectDropdown--wide .vkuiCustomScrollView__box{padding-right:0}
|
|
1
|
+
.vkuiCustomScrollView{height:100%;overflow:hidden;position:relative;width:100%}.vkuiCustomScrollView__box{height:100%;max-height:inherit;overflow-x:hidden;overflow-y:scroll;padding-right:100px;position:relative;scrollbar-width:none;width:100%}.vkuiCustomScrollView__box::-webkit-scrollbar{display:none}.vkuiCustomScrollView__barY:active+.vkuiCustomScrollView__box{pointer-events:none}.vkuiCustomScrollView__barY{height:100%;position:absolute;right:0;top:0;width:10px}.vkuiCustomScrollView__trackerY{box-sizing:border-box;left:0;padding:4px 4px 4px 0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:10px}.vkuiCustomScrollView__trackerY--hidden{opacity:0;transition:opacity .2s}.vkuiCustomScrollView__trackerY:before{background-color:#818c99;background-color:var(--vkui--color_icon_medium);border-radius:12px;content:"";display:block;height:100%;opacity:.48;transition:transform .2s,opacity .2s;width:100%}.vkuiCustomScrollView__trackerY:active:before,.vkuiCustomScrollView__trackerY:hover:before{opacity:.8;transform:scaleX(1.3333)}.vkuiCustomSelectDropdown .vkuiCustomScrollView__box{padding-right:8px}.vkuiCustomSelectDropdown--wide .vkuiCustomScrollView__box{padding-right:0}
|
|
@@ -6,7 +6,8 @@ var _excluded = ["option"],
|
|
|
6
6
|
_excluded2 = ["before", "name", "className", "getRef", "getRootRef", "popupDirection", "style", "onChange", "children", "onInputChange", "renderDropdown", "onOpen", "onClose", "fetching", "forceDropdownPortal", "selectType", "autoHideScrollbar", "autoHideScrollbarDelay", "searchable", "renderOption", "options", "emptyText", "filterFn", "icon", "dropdownOffsetDistance", "fixDropdownWidth"];
|
|
7
7
|
import * as React from 'react';
|
|
8
8
|
import { SelectMimicry } from '../SelectMimicry/SelectMimicry';
|
|
9
|
-
import { debounce,
|
|
9
|
+
import { debounce, getTitleFromChildren } from '../../lib/utils';
|
|
10
|
+
import { useExternRef } from '../../hooks/useExternRef';
|
|
10
11
|
import { classNames } from '@vkontakte/vkjs';
|
|
11
12
|
import { CustomSelectOption } from '../CustomSelectOption/CustomSelectOption';
|
|
12
13
|
import { Input } from '../Input/Input';
|
|
@@ -123,6 +124,7 @@ export function CustomSelect(props) {
|
|
|
123
124
|
checkOptionsValueType(optionsProp);
|
|
124
125
|
}
|
|
125
126
|
var containerRef = React.useRef(null);
|
|
127
|
+
var handleRootRef = useExternRef(containerRef, getRootRef);
|
|
126
128
|
var scrollBoxRef = React.useRef(null);
|
|
127
129
|
var selectElRef = React.useRef(null);
|
|
128
130
|
var _React$useState3 = React.useState(-1),
|
|
@@ -165,7 +167,10 @@ export function CustomSelect(props) {
|
|
|
165
167
|
});
|
|
166
168
|
}, [props.value]);
|
|
167
169
|
useIsomorphicLayoutEffect(function () {
|
|
168
|
-
if (
|
|
170
|
+
if (options.some(function (_ref2) {
|
|
171
|
+
var value = _ref2.value;
|
|
172
|
+
return nativeSelectValue === value;
|
|
173
|
+
})) {
|
|
169
174
|
var _selectElRef$current;
|
|
170
175
|
var _event = new Event('change', {
|
|
171
176
|
bubbles: true
|
|
@@ -311,8 +316,8 @@ export function CustomSelect(props) {
|
|
|
311
316
|
focusOptionByIndex(index);
|
|
312
317
|
}, [focusOptionByIndex, focusedOptionIndex, options]);
|
|
313
318
|
React.useEffect(function updateOptionsAndSelectedOptionIndex() {
|
|
314
|
-
var
|
|
315
|
-
var value = (
|
|
319
|
+
var _ref3, _props$value4;
|
|
320
|
+
var value = (_ref3 = (_props$value4 = props.value) !== null && _props$value4 !== void 0 ? _props$value4 : nativeSelectValue) !== null && _ref3 !== void 0 ? _ref3 : props.defaultValue;
|
|
316
321
|
var options = searchable && inputValue !== undefined ? filter(optionsProp, inputValue, filterFn) : optionsProp;
|
|
317
322
|
setOptions(options);
|
|
318
323
|
setSelectedOptionIndex(findSelectedIndex(options, value));
|
|
@@ -458,7 +463,7 @@ export function CustomSelect(props) {
|
|
|
458
463
|
return /*#__PURE__*/React.createElement("label", {
|
|
459
464
|
className: classNames("vkuiCustomSelect", className),
|
|
460
465
|
style: style,
|
|
461
|
-
ref:
|
|
466
|
+
ref: handleRootRef,
|
|
462
467
|
onClick: onLabelClick
|
|
463
468
|
}, opened && searchable ? /*#__PURE__*/React.createElement(Input, _extends({}, restProps, {
|
|
464
469
|
autoFocus: true,
|
|
@@ -474,7 +479,6 @@ export function CustomSelect(props) {
|
|
|
474
479
|
onClick: props.onClick,
|
|
475
480
|
before: before,
|
|
476
481
|
after: icon,
|
|
477
|
-
placeholder: restProps.placeholder,
|
|
478
482
|
mode: getFormFieldModeFromSelectType(selectType)
|
|
479
483
|
})) : /*#__PURE__*/React.createElement(SelectMimicry, _extends({}, restProps, {
|
|
480
484
|
"aria-hidden": true,
|
|
@@ -484,6 +488,7 @@ export function CustomSelect(props) {
|
|
|
484
488
|
onFocus: onFocus,
|
|
485
489
|
onBlur: onBlur,
|
|
486
490
|
className: openedClassNames,
|
|
491
|
+
before: before,
|
|
487
492
|
after: icon,
|
|
488
493
|
selectType: selectType
|
|
489
494
|
}), selected === null || selected === void 0 ? void 0 : selected.label), /*#__PURE__*/React.createElement("select", {
|
|
@@ -512,8 +517,7 @@ export function CustomSelect(props) {
|
|
|
512
517
|
sameWidth: fixDropdownWidth,
|
|
513
518
|
forcePortal: forceDropdownPortal,
|
|
514
519
|
autoHideScrollbar: autoHideScrollbar,
|
|
515
|
-
autoHideScrollbarDelay: autoHideScrollbarDelay
|
|
516
|
-
observableRefs: scrollBoxRef
|
|
520
|
+
autoHideScrollbarDelay: autoHideScrollbarDelay
|
|
517
521
|
}, resolvedContent));
|
|
518
522
|
}
|
|
519
523
|
//# sourceMappingURL=CustomSelect.js.map
|