@vkontakte/vkui 8.1.3 → 8.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/dist/components/ActionSheet/ActionSheet.d.ts +5 -4
- package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js +2 -1
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts +3 -3
- package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js +2 -2
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRoot.js +0 -6
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppRoot/AppRootContext.d.ts +0 -1
- package/dist/components/AppRoot/AppRootContext.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRootContext.js +0 -1
- package/dist/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +1 -1
- package/dist/components/Calendar/Calendar.js +2 -1
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.js +4 -2
- package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.js +2 -2
- package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.js +4 -2
- package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts +2 -2
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/CalendarTime/CalendarTime.d.ts +1 -1
- package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
- package/dist/components/CalendarTime/CalendarTime.js +61 -50
- package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/components/CalendarTime/CalendarTimePicker.d.ts +11 -7
- package/dist/components/CalendarTime/CalendarTimePicker.d.ts.map +1 -1
- package/dist/components/CalendarTime/CalendarTimePicker.js +108 -48
- package/dist/components/CalendarTime/CalendarTimePicker.js.map +1 -1
- package/dist/components/CalendarTime/ComboBox.d.ts +25 -0
- package/dist/components/CalendarTime/ComboBox.d.ts.map +1 -0
- package/dist/components/CalendarTime/ComboBox.js +112 -0
- package/dist/components/CalendarTime/ComboBox.js.map +1 -0
- package/dist/components/CardScroll/CardScroll.d.ts.map +1 -1
- package/dist/components/CardScroll/CardScroll.js +2 -2
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/CarouselBase/CarouselBase.d.ts.map +1 -1
- package/dist/components/CarouselBase/CarouselBase.js +3 -1
- package/dist/components/CarouselBase/CarouselBase.js.map +1 -1
- package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
- package/dist/components/ChipsSelect/useChipsSelect.js +2 -1
- package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js +8 -4
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderOverride.d.ts.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderOverride.js +5 -1
- package/dist/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderSubContexts.d.ts +15 -0
- package/dist/components/ConfigProvider/ConfigProviderSubContexts.d.ts.map +1 -0
- package/dist/components/ConfigProvider/ConfigProviderSubContexts.js +25 -0
- package/dist/components/ConfigProvider/ConfigProviderSubContexts.js.map +1 -0
- package/dist/components/ContentBadge/ContentBadge.d.ts +14 -1
- package/dist/components/ContentBadge/ContentBadge.d.ts.map +1 -1
- package/dist/components/ContentBadge/ContentBadge.js +39 -1
- package/dist/components/ContentBadge/ContentBadge.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +16 -10
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/components/DateInput/DateInput.js +4 -3
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +2 -2
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/Epic/ScrollSaver.d.ts.map +1 -1
- package/dist/components/Epic/ScrollSaver.js +1 -0
- package/dist/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/components/FixedLayout/ParentWidthWrapper.d.ts +6 -0
- package/dist/components/FixedLayout/ParentWidthWrapper.d.ts.map +1 -0
- package/dist/components/FixedLayout/ParentWidthWrapper.js +43 -0
- package/dist/components/FixedLayout/ParentWidthWrapper.js.map +1 -0
- package/dist/components/Flex/Flex.d.ts +7 -4
- package/dist/components/Flex/Flex.d.ts.map +1 -1
- package/dist/components/Flex/Flex.js +5 -2
- package/dist/components/Flex/Flex.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js +3 -1
- package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.js +6 -2
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js +2 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.d.ts +1 -1
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/Popper/Popper.js +1 -1
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.js +8 -4
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/Root/Root.d.ts +1 -1
- package/dist/components/Root/Root.d.ts.map +1 -1
- package/dist/components/Root/Root.js +14 -5
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/SimpleGrid/SimpleGrid.d.ts +9 -8
- package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
- package/dist/components/SimpleGrid/SimpleGrid.js +9 -2
- package/dist/components/SimpleGrid/SimpleGrid.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/components/Skeleton/Skeleton.js +3 -4
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Snackbar/Snackbar.d.ts.map +1 -1
- package/dist/components/Snackbar/Snackbar.js +6 -3
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/Spacing/Spacing.d.ts +1 -1
- package/dist/components/Spacing/Spacing.js.map +1 -1
- package/dist/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.d.ts +10 -0
- package/dist/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.d.ts.map +1 -0
- package/dist/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.js +54 -0
- package/dist/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.js.map +1 -0
- package/dist/components/Spinner/ExpressiveSpinner/icons.d.ts +18 -0
- package/dist/components/Spinner/ExpressiveSpinner/icons.d.ts.map +1 -0
- package/dist/components/Spinner/ExpressiveSpinner/icons.js +79 -0
- package/dist/components/Spinner/ExpressiveSpinner/icons.js.map +1 -0
- package/dist/components/Spinner/SvgIcon.d.ts +14 -0
- package/dist/components/Spinner/SvgIcon.d.ts.map +1 -0
- package/dist/components/Spinner/SvgIcon.js +20 -0
- package/dist/components/Spinner/SvgIcon.js.map +1 -0
- package/dist/components/Spinner/icons.d.ts +1 -1
- package/dist/components/Spinner/icons.d.ts.map +1 -1
- package/dist/components/Spinner/icons.js +10 -23
- package/dist/components/Spinner/icons.js.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.d.ts +3 -3
- package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
- package/dist/components/TabsItem/TabsItem.js +2 -5
- package/dist/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/components/Tappable/Tappable.d.ts +2 -2
- package/dist/components/Tappable/Tappable.js.map +1 -1
- package/dist/components/WriteBar/WriteBar.d.ts +15 -1
- package/dist/components/WriteBar/WriteBar.d.ts.map +1 -1
- package/dist/components/WriteBar/WriteBar.js +35 -63
- package/dist/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.d.ts +5 -0
- package/dist/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.d.ts.map +1 -0
- package/dist/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.js +15 -0
- package/dist/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.js.map +1 -0
- package/dist/components/WriteBar/WriteBarFormField/WriteBarFormField.d.ts +8 -0
- package/dist/components/WriteBar/WriteBarFormField/WriteBarFormField.d.ts.map +1 -0
- package/dist/components/WriteBar/WriteBarFormField/WriteBarFormField.js +16 -0
- package/dist/components/WriteBar/WriteBarFormField/WriteBarFormField.js.map +1 -0
- package/dist/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.d.ts +5 -0
- package/dist/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.d.ts.map +1 -0
- package/dist/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.js +15 -0
- package/dist/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.js.map +1 -0
- package/dist/components/WriteBar/WriteBarRoot/WriteBarRoot.d.ts +10 -0
- package/dist/components/WriteBar/WriteBarRoot/WriteBarRoot.d.ts.map +1 -0
- package/dist/components/WriteBar/WriteBarRoot/WriteBarRoot.js +16 -0
- package/dist/components/WriteBar/WriteBarRoot/WriteBarRoot.js.map +1 -0
- package/dist/components/WriteBar/WriteBarTextarea/WriteBarTextarea.d.ts +10 -0
- package/dist/components/WriteBar/WriteBarTextarea/WriteBarTextarea.d.ts.map +1 -0
- package/dist/components/WriteBar/WriteBarTextarea/WriteBarTextarea.js +39 -0
- package/dist/components/WriteBar/WriteBarTextarea/WriteBarTextarea.js.map +1 -0
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +2 -2
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +0 -6
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootContext.js +0 -1
- package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cssm/components/Calendar/Calendar.js +2 -1
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.js +4 -2
- package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js +2 -2
- package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js +4 -2
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.js +61 -50
- package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.module.css +38 -0
- package/dist/cssm/components/CalendarTime/CalendarTimePicker.js +108 -48
- package/dist/cssm/components/CalendarTime/CalendarTimePicker.js.map +1 -1
- package/dist/cssm/components/CalendarTime/ComboBox.js +113 -0
- package/dist/cssm/components/CalendarTime/ComboBox.js.map +1 -0
- package/dist/cssm/components/CardScroll/CardScroll.js +2 -2
- package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cssm/components/CarouselBase/CarouselBase.js +3 -1
- package/dist/cssm/components/CarouselBase/CarouselBase.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/useChipsSelect.js +2 -1
- package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js +8 -4
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js +5 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderSubContexts.js +25 -0
- package/dist/cssm/components/ConfigProvider/ConfigProviderSubContexts.js.map +1 -0
- package/dist/cssm/components/ContentBadge/ContentBadge.js +39 -1
- package/dist/cssm/components/ContentBadge/ContentBadge.js.map +1 -1
- package/dist/cssm/components/ContentBadge/ContentBadge.module.css +88 -90
- package/dist/cssm/components/CustomSelect/CustomSelect.js +16 -10
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.js +4 -3
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +2 -2
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/Epic/ScrollSaver.js +1 -0
- package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/cssm/components/FixedLayout/ParentWidthWrapper.js +43 -0
- package/dist/cssm/components/FixedLayout/ParentWidthWrapper.js.map +1 -0
- package/dist/cssm/components/Flex/Flex.js +5 -2
- package/dist/cssm/components/Flex/Flex.js.map +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.module.css +1 -1
- package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js +3 -1
- package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js +6 -2
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +2 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.js +1 -1
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js +8 -4
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +1 -1
- package/dist/cssm/components/Root/Root.js +14 -5
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/SimpleGrid/SimpleGrid.js +9 -2
- package/dist/cssm/components/SimpleGrid/SimpleGrid.js.map +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.js +3 -4
- package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.js +6 -3
- package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
- package/dist/cssm/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.js +56 -0
- package/dist/cssm/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.js.map +1 -0
- package/dist/cssm/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.module.css +13 -0
- package/dist/cssm/components/Spinner/ExpressiveSpinner/icons.js +79 -0
- package/dist/cssm/components/Spinner/ExpressiveSpinner/icons.js.map +1 -0
- package/dist/cssm/components/Spinner/SvgIcon.js +20 -0
- package/dist/cssm/components/Spinner/SvgIcon.js.map +1 -0
- package/dist/cssm/components/Spinner/icons.js +10 -23
- package/dist/cssm/components/Spinner/icons.js.map +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js +2 -5
- package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
- package/dist/cssm/components/WriteBar/WriteBar.js +35 -64
- package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cssm/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.js +16 -0
- package/dist/cssm/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.js.map +1 -0
- package/dist/cssm/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.module.css +12 -0
- package/dist/cssm/components/WriteBar/WriteBarFormField/WriteBarFormField.js +17 -0
- package/dist/cssm/components/WriteBar/WriteBarFormField/WriteBarFormField.js.map +1 -0
- package/dist/cssm/components/WriteBar/WriteBarFormField/WriteBarFormField.module.css +18 -0
- package/dist/cssm/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.js +16 -0
- package/dist/cssm/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.js.map +1 -0
- package/dist/cssm/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.module.css +3 -0
- package/dist/cssm/components/WriteBar/WriteBarRoot/WriteBarRoot.js +17 -0
- package/dist/cssm/components/WriteBar/WriteBarRoot/WriteBarRoot.js.map +1 -0
- package/dist/cssm/components/WriteBar/WriteBarRoot/WriteBarRoot.module.css +15 -0
- package/dist/cssm/components/WriteBar/WriteBarTextarea/WriteBarTextarea.js +40 -0
- package/dist/cssm/components/WriteBar/WriteBarTextarea/WriteBarTextarea.js.map +1 -0
- package/dist/cssm/components/WriteBar/WriteBarTextarea/WriteBarTextarea.module.css +43 -0
- package/dist/cssm/helpers/math.js +6 -0
- package/dist/cssm/helpers/math.js.map +1 -1
- package/dist/cssm/hoc/withPlatform.js +3 -2
- package/dist/cssm/hoc/withPlatform.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/types.js.map +1 -1
- package/dist/cssm/hooks/useAnimationFrame.js +40 -0
- package/dist/cssm/hooks/useAnimationFrame.js.map +1 -0
- package/dist/cssm/hooks/useAutoFocus.js +4 -1
- package/dist/cssm/hooks/useAutoFocus.js.map +1 -1
- package/dist/cssm/hooks/useColorScheme.js +3 -3
- package/dist/cssm/hooks/useColorScheme.js.map +1 -1
- package/dist/cssm/hooks/useConfigDirection.js +3 -3
- package/dist/cssm/hooks/useConfigDirection.js.map +1 -1
- package/dist/cssm/hooks/useDateInput.js +1 -2
- package/dist/cssm/hooks/useDateInput.js.map +1 -1
- package/dist/cssm/hooks/useFocusTrap/useAutoFocus.js +1 -0
- package/dist/cssm/hooks/useFocusTrap/useAutoFocus.js.map +1 -1
- package/dist/cssm/hooks/useFocusTrap/useFocusTrap.js +2 -0
- package/dist/cssm/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
- package/dist/cssm/hooks/useFocusVisible.js +8 -13
- package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
- package/dist/cssm/hooks/useFocusWithin.js +5 -4
- package/dist/cssm/hooks/useFocusWithin.js.map +1 -1
- package/dist/cssm/hooks/useGlobalEscKeyDown.js +17 -15
- package/dist/cssm/hooks/useGlobalEscKeyDown.js.map +1 -1
- package/dist/cssm/hooks/useGlobalOnClickOutside.js +6 -2
- package/dist/cssm/hooks/useGlobalOnClickOutside.js.map +1 -1
- package/dist/cssm/hooks/useKeyboardInputTracker.js +48 -41
- package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/cssm/hooks/useLatestRef.js +13 -0
- package/dist/cssm/hooks/useLatestRef.js.map +1 -0
- package/dist/cssm/hooks/useLocale.js +3 -3
- package/dist/cssm/hooks/useLocale.js.map +1 -1
- package/dist/cssm/hooks/useMediaQueryMatch.js +1 -0
- package/dist/cssm/hooks/useMediaQueryMatch.js.map +1 -1
- package/dist/cssm/hooks/useMutationObserver.js +3 -3
- package/dist/cssm/hooks/useMutationObserver.js.map +1 -1
- package/dist/cssm/hooks/usePlatform.js +3 -3
- package/dist/cssm/hooks/usePlatform.js.map +1 -1
- package/dist/cssm/hooks/useResizeObserver.js +4 -6
- package/dist/cssm/hooks/useResizeObserver.js.map +1 -1
- package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js +2 -1
- package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
- package/dist/cssm/hooks/useSyncHTMLWithTokens.js +3 -1
- package/dist/cssm/hooks/useSyncHTMLWithTokens.js.map +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.js +13 -15
- package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/cssm/index.js +1 -0
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/array.js +18 -0
- package/dist/cssm/lib/array.js.map +1 -0
- package/dist/cssm/lib/curve.js +21 -0
- package/dist/cssm/lib/curve.js.map +1 -0
- package/dist/cssm/lib/dom.js +5 -2
- package/dist/cssm/lib/dom.js.map +1 -1
- package/dist/cssm/lib/fx.js +4 -55
- package/dist/cssm/lib/fx.js.map +1 -1
- package/dist/cssm/lib/layouts/index.js.map +1 -1
- package/dist/cssm/lib/layouts/layoutProps.js +11 -0
- package/dist/cssm/lib/layouts/layoutProps.js.map +1 -1
- package/dist/cssm/lib/layouts/resolveLayoutProps.js +13 -11
- package/dist/cssm/lib/layouts/resolveLayoutProps.js.map +1 -1
- package/dist/cssm/lib/layouts/types.js.map +1 -1
- package/dist/cssm/lib/material/shapes/Shape.js +18 -0
- package/dist/cssm/lib/material/shapes/Shape.js.map +1 -0
- package/dist/cssm/lib/material/shapes/shapes.js +2250 -0
- package/dist/cssm/lib/material/shapes/shapes.js.map +1 -0
- package/dist/cssm/lib/math.js +31 -0
- package/dist/cssm/lib/math.js.map +1 -0
- package/dist/cssm/lib/svg/path/approximate.js +57 -0
- package/dist/cssm/lib/svg/path/approximate.js.map +1 -0
- package/dist/cssm/lib/svg/path/interpolate.js +121 -0
- package/dist/cssm/lib/svg/path/interpolate.js.map +1 -0
- package/dist/cssm/lib/svg/path/path.js +50 -0
- package/dist/cssm/lib/svg/path/path.js.map +1 -0
- package/dist/cssm/lib/svg/path/point.js +3 -0
- package/dist/cssm/lib/svg/path/point.js.map +1 -0
- package/dist/cssm/lib/svg/path/transform.js +110 -0
- package/dist/cssm/lib/svg/path/transform.js.map +1 -0
- package/dist/cssm/lib/tokens/useTokenClassName.js +4 -1
- package/dist/cssm/lib/tokens/useTokenClassName.js.map +1 -1
- package/dist/cssm/lib/touch/UIPanGestureRecognizer.js +2 -2
- package/dist/cssm/lib/touch/UIPanGestureRecognizer.js.map +1 -1
- package/dist/cssm/styles/layout.css +273 -0
- package/dist/cssm/types.js +1 -4
- package/dist/cssm/types.js.map +1 -1
- package/dist/helpers/math.d.ts +4 -0
- package/dist/helpers/math.d.ts.map +1 -1
- package/dist/helpers/math.js +6 -0
- package/dist/helpers/math.js.map +1 -1
- package/dist/hoc/withPlatform.d.ts +1 -1
- package/dist/hoc/withPlatform.d.ts.map +1 -1
- package/dist/hoc/withPlatform.js +3 -2
- package/dist/hoc/withPlatform.js.map +1 -1
- package/dist/hooks/useAdaptivityConditionalRender/types.d.ts +2 -2
- package/dist/hooks/useAdaptivityConditionalRender/types.js.map +1 -1
- package/dist/hooks/useAnimationFrame.d.ts +16 -0
- package/dist/hooks/useAnimationFrame.d.ts.map +1 -0
- package/dist/hooks/useAnimationFrame.js +40 -0
- package/dist/hooks/useAnimationFrame.js.map +1 -0
- package/dist/hooks/useAutoFocus.js +4 -1
- package/dist/hooks/useAutoFocus.js.map +1 -1
- package/dist/hooks/useColorScheme.d.ts.map +1 -1
- package/dist/hooks/useColorScheme.js +3 -3
- package/dist/hooks/useColorScheme.js.map +1 -1
- package/dist/hooks/useConfigDirection.d.ts.map +1 -1
- package/dist/hooks/useConfigDirection.js +3 -3
- package/dist/hooks/useConfigDirection.js.map +1 -1
- package/dist/hooks/useDateInput.d.ts.map +1 -1
- package/dist/hooks/useDateInput.js +1 -2
- package/dist/hooks/useDateInput.js.map +1 -1
- package/dist/hooks/useFocusTrap/useAutoFocus.js +1 -0
- package/dist/hooks/useFocusTrap/useAutoFocus.js.map +1 -1
- package/dist/hooks/useFocusTrap/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap/useFocusTrap.js +2 -0
- package/dist/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
- package/dist/hooks/useFocusVisible.d.ts.map +1 -1
- package/dist/hooks/useFocusVisible.js +8 -13
- package/dist/hooks/useFocusVisible.js.map +1 -1
- package/dist/hooks/useFocusWithin.d.ts.map +1 -1
- package/dist/hooks/useFocusWithin.js +5 -4
- package/dist/hooks/useFocusWithin.js.map +1 -1
- package/dist/hooks/useGlobalEscKeyDown.d.ts.map +1 -1
- package/dist/hooks/useGlobalEscKeyDown.js +17 -15
- package/dist/hooks/useGlobalEscKeyDown.js.map +1 -1
- package/dist/hooks/useGlobalOnClickOutside.d.ts.map +1 -1
- package/dist/hooks/useGlobalOnClickOutside.js +6 -2
- package/dist/hooks/useGlobalOnClickOutside.js.map +1 -1
- package/dist/hooks/useKeyboardInputTracker.d.ts +1 -19
- package/dist/hooks/useKeyboardInputTracker.d.ts.map +1 -1
- package/dist/hooks/useKeyboardInputTracker.js +48 -41
- package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/hooks/useLatestRef.d.ts +3 -0
- package/dist/hooks/useLatestRef.d.ts.map +1 -0
- package/dist/hooks/useLatestRef.js +13 -0
- package/dist/hooks/useLatestRef.js.map +1 -0
- package/dist/hooks/useLocale.d.ts.map +1 -1
- package/dist/hooks/useLocale.js +3 -3
- package/dist/hooks/useLocale.js.map +1 -1
- package/dist/hooks/useMediaQueryMatch.js +1 -0
- package/dist/hooks/useMediaQueryMatch.js.map +1 -1
- package/dist/hooks/useMutationObserver.d.ts +1 -2
- package/dist/hooks/useMutationObserver.d.ts.map +1 -1
- package/dist/hooks/useMutationObserver.js +3 -3
- package/dist/hooks/useMutationObserver.js.map +1 -1
- package/dist/hooks/usePlatform.d.ts.map +1 -1
- package/dist/hooks/usePlatform.js +3 -3
- package/dist/hooks/usePlatform.js.map +1 -1
- package/dist/hooks/useResizeObserver.d.ts.map +1 -1
- package/dist/hooks/useResizeObserver.js +4 -6
- package/dist/hooks/useResizeObserver.js.map +1 -1
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js +2 -1
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
- package/dist/hooks/useSyncHTMLWithTokens.js +3 -1
- package/dist/hooks/useSyncHTMLWithTokens.js.map +1 -1
- package/dist/hooks/useWaitTransitionFinish.d.ts.map +1 -1
- package/dist/hooks/useWaitTransitionFinish.js +13 -15
- package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/array.d.ts +17 -0
- package/dist/lib/array.d.ts.map +1 -0
- package/dist/lib/array.js +18 -0
- package/dist/lib/array.js.map +1 -0
- package/dist/lib/curve.d.ts +9 -0
- package/dist/lib/curve.d.ts.map +1 -0
- package/dist/lib/curve.js +21 -0
- package/dist/lib/curve.js.map +1 -0
- package/dist/lib/dom.d.ts +2 -1
- package/dist/lib/dom.d.ts.map +1 -1
- package/dist/lib/dom.js +5 -2
- package/dist/lib/dom.js.map +1 -1
- package/dist/lib/fx.d.ts +1 -8
- package/dist/lib/fx.d.ts.map +1 -1
- package/dist/lib/fx.js +4 -55
- package/dist/lib/fx.js.map +1 -1
- package/dist/lib/layouts/index.d.ts +1 -1
- package/dist/lib/layouts/index.d.ts.map +1 -1
- package/dist/lib/layouts/index.js.map +1 -1
- package/dist/lib/layouts/layoutProps.d.ts +7 -0
- package/dist/lib/layouts/layoutProps.d.ts.map +1 -1
- package/dist/lib/layouts/layoutProps.js +11 -0
- package/dist/lib/layouts/layoutProps.js.map +1 -1
- package/dist/lib/layouts/resolveLayoutProps.d.ts.map +1 -1
- package/dist/lib/layouts/resolveLayoutProps.js +13 -11
- package/dist/lib/layouts/resolveLayoutProps.js.map +1 -1
- package/dist/lib/layouts/types.d.ts +29 -0
- package/dist/lib/layouts/types.d.ts.map +1 -1
- package/dist/lib/layouts/types.js.map +1 -1
- package/dist/lib/material/shapes/Shape.d.ts +8 -0
- package/dist/lib/material/shapes/Shape.d.ts.map +1 -0
- package/dist/lib/material/shapes/Shape.js +18 -0
- package/dist/lib/material/shapes/Shape.js.map +1 -0
- package/dist/lib/material/shapes/shapes.d.ts +43 -0
- package/dist/lib/material/shapes/shapes.d.ts.map +1 -0
- package/dist/lib/material/shapes/shapes.js +2250 -0
- package/dist/lib/material/shapes/shapes.js.map +1 -0
- package/dist/lib/math.d.ts +23 -0
- package/dist/lib/math.d.ts.map +1 -0
- package/dist/lib/math.js +31 -0
- package/dist/lib/math.js.map +1 -0
- package/dist/lib/svg/path/approximate.d.ts +21 -0
- package/dist/lib/svg/path/approximate.d.ts.map +1 -0
- package/dist/lib/svg/path/approximate.js +57 -0
- package/dist/lib/svg/path/approximate.js.map +1 -0
- package/dist/lib/svg/path/interpolate.d.ts +5 -0
- package/dist/lib/svg/path/interpolate.d.ts.map +1 -0
- package/dist/lib/svg/path/interpolate.js +121 -0
- package/dist/lib/svg/path/interpolate.js.map +1 -0
- package/dist/lib/svg/path/path.d.ts +48 -0
- package/dist/lib/svg/path/path.d.ts.map +1 -0
- package/dist/lib/svg/path/path.js +50 -0
- package/dist/lib/svg/path/path.js.map +1 -0
- package/dist/lib/svg/path/point.d.ts +3 -0
- package/dist/lib/svg/path/point.d.ts.map +1 -0
- package/dist/lib/svg/path/point.js +3 -0
- package/dist/lib/svg/path/point.js.map +1 -0
- package/dist/lib/svg/path/transform.d.ts +64 -0
- package/dist/lib/svg/path/transform.d.ts.map +1 -0
- package/dist/lib/svg/path/transform.js +110 -0
- package/dist/lib/svg/path/transform.js.map +1 -0
- package/dist/lib/tokens/useTokenClassName.d.ts.map +1 -1
- package/dist/lib/tokens/useTokenClassName.js +4 -1
- package/dist/lib/tokens/useTokenClassName.js.map +1 -1
- package/dist/lib/touch/UIPanGestureRecognizer.d.ts.map +1 -1
- package/dist/lib/touch/UIPanGestureRecognizer.js +2 -2
- package/dist/lib/touch/UIPanGestureRecognizer.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -4
- package/dist/types.js.map +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +7 -6
- package/src/components/ActionSheet/ActionSheet.tsx +6 -3
- package/src/components/AdaptivityProvider/AdaptivityContext.tsx +3 -3
- package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +2 -2
- package/src/components/AppRoot/AppRoot.tsx +1 -14
- package/src/components/AppRoot/AppRootContext.ts +0 -2
- package/src/components/Calendar/Calendar.tsx +2 -2
- package/src/components/CalendarDay/CalendarDay.tsx +4 -2
- package/src/components/CalendarDays/CalendarDays.tsx +2 -2
- package/src/components/CalendarHeader/CalendarHeader.tsx +4 -2
- package/src/components/CalendarRange/CalendarRange.tsx +2 -2
- package/src/components/CalendarTime/CalendarTime.module.css +38 -0
- package/src/components/CalendarTime/CalendarTime.module.css.d.ts.map +1 -1
- package/src/components/CalendarTime/CalendarTime.tsx +68 -55
- package/src/components/CalendarTime/CalendarTimePicker.tsx +148 -62
- package/src/components/CalendarTime/ComboBox.tsx +189 -0
- package/src/components/CardScroll/CardScroll.tsx +6 -5
- package/src/components/CarouselBase/CarouselBase.tsx +2 -1
- package/src/components/ChipsSelect/useChipsSelect.ts +1 -0
- package/src/components/ConfigProvider/ConfigProvider.tsx +6 -3
- package/src/components/ConfigProvider/ConfigProviderOverride.tsx +2 -1
- package/src/components/ConfigProvider/ConfigProviderSubContexts.tsx +43 -0
- package/src/components/ContentBadge/ContentBadge.module.css +84 -91
- package/src/components/ContentBadge/ContentBadge.module.css.d.ts.map +1 -1
- package/src/components/ContentBadge/ContentBadge.tsx +73 -5
- package/src/components/CustomSelect/CustomSelect.tsx +19 -10
- package/src/components/DateInput/DateInput.tsx +3 -3
- package/src/components/DateRangeInput/DateRangeInput.tsx +2 -2
- package/src/components/Epic/ScrollSaver.tsx +1 -0
- package/src/components/FixedLayout/ParentWidthWrapper.tsx +48 -0
- package/src/components/Flex/Flex.tsx +11 -6
- package/src/components/GridAvatar/GridAvatar.module.css +1 -1
- package/src/components/GridAvatar/GridAvatar.module.css.d.ts.map +1 -1
- package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.tsx +1 -1
- package/src/components/NativeSelect/NativeSelect.tsx +4 -2
- package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +1 -1
- package/src/components/PanelHeader/PanelHeader.tsx +1 -1
- package/src/components/Popper/Popper.tsx +1 -1
- package/src/components/PullToRefresh/PullToRefresh.module.css +1 -1
- package/src/components/PullToRefresh/PullToRefresh.tsx +10 -3
- package/src/components/Root/Root.tsx +10 -7
- package/src/components/SimpleGrid/SimpleGrid.tsx +25 -11
- package/src/components/Skeleton/Skeleton.tsx +6 -4
- package/src/components/Snackbar/Snackbar.tsx +6 -3
- package/src/components/Spacing/Spacing.tsx +1 -1
- package/src/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.module.css +13 -0
- package/src/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.module.css.d.ts.map +1 -0
- package/src/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.tsx +73 -0
- package/src/components/Spinner/ExpressiveSpinner/icons.tsx +104 -0
- package/src/components/Spinner/SvgIcon.tsx +31 -0
- package/src/components/Spinner/icons.tsx +10 -13
- package/src/components/SplitLayout/SplitLayout.tsx +3 -3
- package/src/components/TabsItem/TabsItem.tsx +4 -5
- package/src/components/Tappable/Tappable.tsx +2 -2
- package/src/components/WriteBar/WriteBar.tsx +25 -59
- package/src/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.module.css +12 -0
- package/src/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.module.css.d.ts.map +1 -0
- package/src/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.tsx +20 -0
- package/src/components/WriteBar/WriteBarFormField/WriteBarFormField.module.css +18 -0
- package/src/components/WriteBar/WriteBarFormField/WriteBarFormField.module.css.d.ts.map +1 -0
- package/src/components/WriteBar/WriteBarFormField/WriteBarFormField.tsx +22 -0
- package/src/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.module.css +3 -0
- package/src/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.module.css.d.ts.map +1 -0
- package/src/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.tsx +23 -0
- package/src/components/WriteBar/WriteBarRoot/WriteBarRoot.module.css +14 -0
- package/src/components/WriteBar/WriteBarRoot/WriteBarRoot.module.css.d.ts.map +1 -0
- package/src/components/WriteBar/WriteBarRoot/WriteBarRoot.tsx +31 -0
- package/src/components/WriteBar/WriteBarTextarea/WriteBarTextarea.module.css +42 -0
- package/src/components/WriteBar/WriteBarTextarea/WriteBarTextarea.module.css.d.ts.map +1 -0
- package/src/components/WriteBar/WriteBarTextarea/WriteBarTextarea.tsx +48 -0
- package/src/helpers/math.ts +8 -0
- package/src/hoc/withPlatform.tsx +3 -3
- package/src/hooks/useAdaptivityConditionalRender/types.ts +2 -2
- package/src/hooks/useAnimationFrame.tsx +42 -0
- package/src/hooks/useAutoFocus.ts +1 -1
- package/src/hooks/useColorScheme.ts +3 -4
- package/src/hooks/useConfigDirection.ts +3 -4
- package/src/hooks/useDateInput.ts +1 -2
- package/src/hooks/useFocusTrap/useAutoFocus.ts +1 -1
- package/src/hooks/useFocusTrap/useFocusTrap.tsx +2 -0
- package/src/hooks/useFocusVisible.ts +10 -18
- package/src/hooks/useFocusWithin.ts +26 -23
- package/src/hooks/useGlobalEscKeyDown.ts +12 -15
- package/src/hooks/useGlobalOnClickOutside.ts +5 -2
- package/src/hooks/useKeyboardInputTracker.ts +68 -55
- package/src/hooks/useLatestRef.ts +12 -0
- package/src/hooks/useLocale.ts +3 -4
- package/src/hooks/useMediaQueryMatch.ts +1 -1
- package/src/hooks/useMutationObserver.ts +2 -3
- package/src/hooks/usePlatform.ts +3 -4
- package/src/hooks/useResizeObserver.ts +4 -5
- package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +1 -1
- package/src/hooks/useSyncHTMLWithTokens.ts +1 -1
- package/src/hooks/useWaitTransitionFinish.ts +15 -15
- package/src/index.ts +1 -0
- package/src/lib/array.ts +19 -0
- package/src/lib/curve.ts +36 -0
- package/src/lib/dom.tsx +10 -4
- package/src/lib/fx.ts +5 -63
- package/src/lib/layouts/index.ts +1 -0
- package/src/lib/layouts/layoutProps.ts +8 -0
- package/src/lib/layouts/resolveLayoutProps.ts +19 -17
- package/src/lib/layouts/types.ts +29 -0
- package/src/lib/material/shapes/Shape.tsx +17 -0
- package/src/lib/material/shapes/shapes.ts +329 -0
- package/src/lib/math.ts +37 -0
- package/src/lib/svg/path/approximate.ts +81 -0
- package/src/lib/svg/path/interpolate.ts +151 -0
- package/src/lib/svg/path/path.ts +102 -0
- package/src/lib/svg/path/point.ts +2 -0
- package/src/lib/svg/path/transform.ts +147 -0
- package/src/lib/tokens/useTokenClassName.ts +7 -5
- package/src/lib/touch/UIPanGestureRecognizer.ts +2 -2
- package/src/types.ts +16 -0
- package/dist/cssm/components/WriteBar/WriteBar.module.css +0 -118
- package/src/components/WriteBar/WriteBar.module.css +0 -116
- package/src/components/WriteBar/WriteBar.module.css.d.ts.map +0 -1
|
@@ -14,7 +14,14 @@
|
|
|
14
14
|
*/
|
|
15
15
|
min-inline-size: 0;
|
|
16
16
|
block-size: auto;
|
|
17
|
+
color: var(--vkui_internal_ContentBadge--color);
|
|
17
18
|
isolation: isolate;
|
|
19
|
+
|
|
20
|
+
--vkui_internal_ContentBadge--backgroundOpacity: 1;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.iconSlot {
|
|
24
|
+
color: var(--vkui_internal_ContentBadge--iconColor, inherit);
|
|
18
25
|
}
|
|
19
26
|
|
|
20
27
|
.sizeS {
|
|
@@ -60,74 +67,19 @@
|
|
|
60
67
|
}
|
|
61
68
|
|
|
62
69
|
/* mode="primary" */
|
|
63
|
-
.
|
|
64
|
-
color: var(--
|
|
65
|
-
background-color: var(--vkui--color_background_accent);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.primaryNeutral {
|
|
69
|
-
color: var(--vkui--color_text_contrast);
|
|
70
|
-
background-color: var(--vkui--color_icon_secondary);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.primaryAccentGreen {
|
|
74
|
-
color: var(--vkui--color_text_contrast);
|
|
75
|
-
background-color: var(--vkui--color_accent_green);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.primaryAccentRed {
|
|
79
|
-
color: var(--vkui--color_text_contrast);
|
|
80
|
-
background-color: var(--vkui--color_accent_red);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.primaryOverlay {
|
|
84
|
-
color: var(--vkui--color_text_contrast);
|
|
85
|
-
background-color: var(--vkui--color_overlay_primary);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.primaryAccent .iconSlot,
|
|
89
|
-
.primaryAccentGreen .iconSlot,
|
|
90
|
-
.primaryAccentRed .iconSlot,
|
|
91
|
-
.primaryOverlay .iconSlot {
|
|
92
|
-
color: var(--vkui--color_icon_contrast);
|
|
70
|
+
.modePrimary {
|
|
71
|
+
background-color: var(--vkui_internal_ContentBadge--background);
|
|
93
72
|
}
|
|
94
73
|
|
|
95
74
|
/* mode="secondary" */
|
|
96
|
-
.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
.secondaryNeutral {
|
|
106
|
-
color: var(--vkui--color_text_primary);
|
|
107
|
-
background-color: var(--vkui--color_background_secondary_alpha);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
.secondaryNeutral .iconSlot {
|
|
111
|
-
color: var(--vkui--color_icon_primary);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
.secondaryAccentGreen {
|
|
115
|
-
color: var(--vkui--color_accent_green);
|
|
116
|
-
background-color: var(--vkui--color_background_positive_tint);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
.secondaryAccentRed {
|
|
120
|
-
color: var(--vkui--color_accent_red);
|
|
121
|
-
background-color: var(--vkui--color_background_negative_tint);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
.secondaryOverlay {
|
|
125
|
-
color: var(--vkui--color_text_contrast);
|
|
126
|
-
background-color: var(--vkui--color_overlay_secondary);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
.secondaryOverlay .iconSlot {
|
|
130
|
-
color: var(--vkui--color_icon_contrast);
|
|
75
|
+
.modeSecondary::before {
|
|
76
|
+
position: absolute;
|
|
77
|
+
inset: 0;
|
|
78
|
+
z-index: -1;
|
|
79
|
+
content: '';
|
|
80
|
+
background-color: var(--vkui_internal_ContentBadge--background);
|
|
81
|
+
border-radius: inherit;
|
|
82
|
+
opacity: var(--vkui_internal_ContentBadge--backgroundOpacity, 1);
|
|
131
83
|
}
|
|
132
84
|
|
|
133
85
|
/* mode="outline" */
|
|
@@ -136,60 +88,101 @@
|
|
|
136
88
|
inset: 0;
|
|
137
89
|
z-index: -1;
|
|
138
90
|
content: '';
|
|
139
|
-
|
|
140
|
-
border
|
|
91
|
+
background-color: var(--vkui_internal_ContentBadge--background);
|
|
92
|
+
border: 1px solid var(--vkui_internal_ContentBadge--borderColor);
|
|
141
93
|
border-radius: inherit;
|
|
142
94
|
}
|
|
143
95
|
|
|
96
|
+
.outlineOverlay::before {
|
|
97
|
+
border-width: 0;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/* appearance="accent" */
|
|
101
|
+
.primaryAccent {
|
|
102
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_text_contrast);
|
|
103
|
+
--vkui_internal_ContentBadge--iconColor: var(--vkui--color_icon_contrast);
|
|
104
|
+
--vkui_internal_ContentBadge--background: var(--vkui--color_background_accent);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.secondaryAccent {
|
|
108
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_text_accent);
|
|
109
|
+
--vkui_internal_ContentBadge--iconColor: var(--vkui--color_icon_accent);
|
|
110
|
+
--vkui_internal_ContentBadge--background: var(--vkui--color_background_secondary_alpha);
|
|
111
|
+
}
|
|
112
|
+
|
|
144
113
|
.outlineAccent {
|
|
145
|
-
color: var(--vkui--color_text_accent);
|
|
114
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_text_accent);
|
|
115
|
+
--vkui_internal_ContentBadge--iconColor: var(--vkui--color_icon_accent);
|
|
116
|
+
--vkui_internal_ContentBadge--borderColor: var(--vkui--color_stroke_accent);
|
|
146
117
|
}
|
|
147
118
|
|
|
148
|
-
|
|
149
|
-
|
|
119
|
+
/* appearance="neutral" */
|
|
120
|
+
.primaryNeutral {
|
|
121
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_text_contrast);
|
|
122
|
+
--vkui_internal_ContentBadge--background: var(--vkui--color_icon_secondary);
|
|
150
123
|
}
|
|
151
124
|
|
|
152
|
-
.
|
|
153
|
-
|
|
125
|
+
.secondaryNeutral {
|
|
126
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_text_primary);
|
|
127
|
+
--vkui_internal_ContentBadge--iconColor: var(--vkui--color_icon_primary);
|
|
128
|
+
--vkui_internal_ContentBadge--background: var(--vkui--color_background_secondary_alpha);
|
|
154
129
|
}
|
|
155
130
|
|
|
156
131
|
.outlineNeutral {
|
|
157
|
-
color: var(--vkui--color_text_secondary);
|
|
132
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_text_secondary);
|
|
133
|
+
--vkui_internal_ContentBadge--iconColor: var(--vkui--color_icon_secondary);
|
|
134
|
+
--vkui_internal_ContentBadge--borderColor: var(--vkui--color_icon_secondary);
|
|
158
135
|
}
|
|
159
136
|
|
|
160
|
-
|
|
161
|
-
|
|
137
|
+
/* appearance="accent-green" */
|
|
138
|
+
.primaryAccentGreen {
|
|
139
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_text_contrast);
|
|
140
|
+
--vkui_internal_ContentBadge--iconColor: var(--vkui--color_icon_contrast);
|
|
141
|
+
--vkui_internal_ContentBadge--background: var(--vkui--color_accent_green);
|
|
162
142
|
}
|
|
163
143
|
|
|
164
|
-
.
|
|
165
|
-
|
|
144
|
+
.secondaryAccentGreen {
|
|
145
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_accent_green);
|
|
146
|
+
--vkui_internal_ContentBadge--background: var(--vkui--color_background_positive_tint);
|
|
166
147
|
}
|
|
167
148
|
|
|
168
149
|
.outlineAccentGreen {
|
|
169
|
-
color: var(--vkui--color_accent_green);
|
|
150
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_accent_green);
|
|
151
|
+
--vkui_internal_ContentBadge--borderColor: var(--vkui--color_accent_green);
|
|
170
152
|
}
|
|
171
153
|
|
|
172
|
-
|
|
173
|
-
|
|
154
|
+
/* appearance="accent-red" */
|
|
155
|
+
.primaryAccentRed {
|
|
156
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_text_contrast);
|
|
157
|
+
--vkui_internal_ContentBadge--iconColor: var(--vkui--color_icon_contrast);
|
|
158
|
+
--vkui_internal_ContentBadge--background: var(--vkui--color_accent_red);
|
|
174
159
|
}
|
|
175
160
|
|
|
176
|
-
.
|
|
177
|
-
color: var(--vkui--color_accent_red);
|
|
161
|
+
.secondaryAccentRed {
|
|
162
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_accent_red);
|
|
163
|
+
--vkui_internal_ContentBadge--background: var(--vkui--color_background_negative_tint);
|
|
178
164
|
}
|
|
179
165
|
|
|
180
|
-
.outlineAccentRed
|
|
181
|
-
|
|
166
|
+
.outlineAccentRed {
|
|
167
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_accent_red);
|
|
168
|
+
--vkui_internal_ContentBadge--borderColor: var(--vkui--color_accent_red);
|
|
182
169
|
}
|
|
183
170
|
|
|
184
|
-
|
|
185
|
-
|
|
171
|
+
/* appearance="overlay" */
|
|
172
|
+
.primaryOverlay {
|
|
173
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_text_contrast);
|
|
174
|
+
--vkui_internal_ContentBadge--iconColor: var(--vkui--color_icon_contrast);
|
|
175
|
+
--vkui_internal_ContentBadge--background: var(--vkui--color_overlay_primary);
|
|
186
176
|
}
|
|
187
177
|
|
|
188
|
-
.
|
|
189
|
-
color: var(--vkui--
|
|
178
|
+
.secondaryOverlay {
|
|
179
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_text_contrast);
|
|
180
|
+
--vkui_internal_ContentBadge--iconColor: var(--vkui--color_icon_contrast);
|
|
181
|
+
--vkui_internal_ContentBadge--background: var(--vkui--color_overlay_secondary);
|
|
190
182
|
}
|
|
191
183
|
|
|
192
|
-
.outlineOverlay
|
|
193
|
-
|
|
194
|
-
|
|
184
|
+
.outlineOverlay {
|
|
185
|
+
--vkui_internal_ContentBadge--color: var(--vkui--color_text_contrast);
|
|
186
|
+
--vkui_internal_ContentBadge--iconColor: var(--vkui--color_icon_contrast);
|
|
187
|
+
--vkui_internal_ContentBadge--background: var(--vkui--color_overlay_primary);
|
|
195
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["./ContentBadge.module.css"],"names":["host","sizeS","sizeM","singleIconSlotSizeM","sizeL","iconSlotSizeL","singleIconSlotSizeL","capsule","
|
|
1
|
+
{"version":3,"sources":["./ContentBadge.module.css"],"names":["host","iconSlot","sizeS","sizeM","singleIconSlotSizeM","sizeL","iconSlotSizeL","singleIconSlotSizeL","capsule","modePrimary","modeSecondary","modeOutline","outlineOverlay","primaryAccent","secondaryAccent","outlineAccent","primaryNeutral","secondaryNeutral","outlineNeutral","primaryAccentGreen","secondaryAccentGreen","outlineAccentGreen","primaryAccentRed","secondaryAccentRed","outlineAccentRed","primaryOverlay","secondaryOverlay"],"mappings":"AAAA;AAAA,E,aAAAA,M,WAAA;AAAA,E,aAsBAC,U,WAtBA;AAAA,E,aA0BAC,O,WA1BA;AAAA,E,aAiCAC,O,WAjCA;AAAA,E,aAyCAC,qB,WAzCA;AAAA,E,aA8CAC,O,WA9CA;AAAA,E,aAsDAC,e,WAtDA;AAAA,E,aA2DAC,qB,WA3DA;AAAA,E,aAgEAC,S,WAhEA;AAAA,E,aAqEAC,a,WArEA;AAAA,E,aA0EAC,e,WA1EA;AAAA,E,aAqFAC,a,WArFA;AAAA,E,aA+FAC,gB,WA/FA;AAAA,E,aAoGAC,e,WApGA;AAAA,E,aA0GAC,iB,WA1GA;AAAA,E,aAgHAC,e,WAhHA;AAAA,E,aAuHAC,gB,WAvHA;AAAA,E,aA4HAC,kB,WA5HA;AAAA,E,aAkIAC,gB,WAlIA;AAAA,E,aAyIAC,oB,WAzIA;AAAA,E,aA+IAC,sB,WA/IA;AAAA,E,aAoJAC,oB,WApJA;AAAA,E,aA0JAC,kB,WA1JA;AAAA,E,aAgKAC,oB,WAhKA;AAAA,E,aAqKAC,kB,WArKA;AAAA,E,aA2KAC,gB,WA3KA;AAAA,E,aAiLAC,kB,WAjLA;AAAA,E,aAuLAd,gB,WAvLA;AAAA;AAAA","file":"ContentBadge.module.css.d.ts","sourceRoot":""}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { classNames } from '@vkontakte/vkjs';
|
|
5
|
+
import { getRequiredValueByKey } from '../../helpers/getValueByKey';
|
|
5
6
|
import { useAdaptivity } from '../../hooks/useAdaptivity';
|
|
6
7
|
import { defineComponentDisplayNames } from '../../lib/react/defineComponentDisplayNames';
|
|
7
|
-
import type { HTMLAttributesWithRootRef } from '../../types';
|
|
8
|
+
import type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';
|
|
8
9
|
import { Tappable } from '../Tappable/Tappable';
|
|
9
10
|
import { captionClassNames } from '../Typography/Caption/Caption';
|
|
10
11
|
import { footnoteClassNames } from '../Typography/Footnote/Footnote';
|
|
@@ -14,7 +15,27 @@ import { ContentBadgeIconSlot } from './ContentBadgeIconSlot';
|
|
|
14
15
|
import type { ContentBadgeModeType, ContentBadgeSizeType } from './types';
|
|
15
16
|
import styles from './ContentBadge.module.css';
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
type ContentBadgePresetAppearance =
|
|
19
|
+
| 'accent'
|
|
20
|
+
| 'neutral'
|
|
21
|
+
| 'accent-green'
|
|
22
|
+
| 'accent-red'
|
|
23
|
+
| 'overlay';
|
|
24
|
+
|
|
25
|
+
type ContentBadgeCustomAppearance = `var(--${string})` | `#${string}`;
|
|
26
|
+
|
|
27
|
+
export type ContentBadgeAppearance = ContentBadgePresetAppearance | ContentBadgeCustomAppearance;
|
|
28
|
+
|
|
29
|
+
const modeClassNames: Record<ContentBadgeModeType, string> = {
|
|
30
|
+
primary: styles.modePrimary,
|
|
31
|
+
secondary: styles.modeSecondary,
|
|
32
|
+
outline: styles.modeOutline,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const appearanceClassNames: Record<
|
|
36
|
+
ContentBadgePresetAppearance,
|
|
37
|
+
Record<ContentBadgeModeType, string>
|
|
38
|
+
> = {
|
|
18
39
|
'accent': {
|
|
19
40
|
primary: styles.primaryAccent,
|
|
20
41
|
secondary: styles.secondaryAccent,
|
|
@@ -48,6 +69,41 @@ const sizeClassNames = {
|
|
|
48
69
|
l: styles.sizeL,
|
|
49
70
|
};
|
|
50
71
|
|
|
72
|
+
const isPresetAppearance = (
|
|
73
|
+
appearance: ContentBadgeAppearance,
|
|
74
|
+
): appearance is ContentBadgePresetAppearance => appearance in appearanceClassNames;
|
|
75
|
+
|
|
76
|
+
const resolveAppearance = (
|
|
77
|
+
appearance: ContentBadgeAppearance,
|
|
78
|
+
mode: ContentBadgeModeType,
|
|
79
|
+
): [CSSCustomProperties | undefined, string | undefined] => {
|
|
80
|
+
if (isPresetAppearance(appearance)) {
|
|
81
|
+
return [undefined, appearanceClassNames[appearance][mode]];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return [
|
|
85
|
+
getRequiredValueByKey<CSSCustomProperties>(mode, {
|
|
86
|
+
primary: {
|
|
87
|
+
'--vkui_internal_ContentBadge--background': appearance,
|
|
88
|
+
'--vkui_internal_ContentBadge--color': 'var(--vkui--color_text_contrast)',
|
|
89
|
+
'--vkui_internal_ContentBadge--iconColor': 'var(--vkui--color_icon_contrast)',
|
|
90
|
+
},
|
|
91
|
+
secondary: {
|
|
92
|
+
'--vkui_internal_ContentBadge--color': appearance,
|
|
93
|
+
'--vkui_internal_ContentBadge--iconColor': appearance,
|
|
94
|
+
'--vkui_internal_ContentBadge--background': appearance,
|
|
95
|
+
'--vkui_internal_ContentBadge--backgroundOpacity': '0.16',
|
|
96
|
+
},
|
|
97
|
+
outline: {
|
|
98
|
+
'--vkui_internal_ContentBadge--color': appearance,
|
|
99
|
+
'--vkui_internal_ContentBadge--iconColor': appearance,
|
|
100
|
+
'--vkui_internal_ContentBadge--borderColor': appearance,
|
|
101
|
+
},
|
|
102
|
+
}),
|
|
103
|
+
undefined,
|
|
104
|
+
];
|
|
105
|
+
};
|
|
106
|
+
|
|
51
107
|
export interface ContentBadgeProps
|
|
52
108
|
extends HTMLAttributesWithRootRef<HTMLDivElement>,
|
|
53
109
|
Pick<TypographyProps, 'weight'> {
|
|
@@ -57,8 +113,17 @@ export interface ContentBadgeProps
|
|
|
57
113
|
mode?: ContentBadgeModeType | undefined;
|
|
58
114
|
/**
|
|
59
115
|
* Цвет оформления.
|
|
116
|
+
*
|
|
117
|
+
* Помимо предустановленных значений принимает кастомный цвет в формате
|
|
118
|
+
* CSS-переменной (`var(--my-token)`) или HEX (`#RRGGBB`).
|
|
119
|
+
*
|
|
120
|
+
* Применение кастомного цвета по режимам:
|
|
121
|
+
*
|
|
122
|
+
* - `mode="primary"` — фон = кастомный цвет, текст/иконка = `--vkui--color_text_contrast` / `--vkui--color_icon_contrast`;
|
|
123
|
+
* - `mode="secondary"` — фон = кастомный цвет с прозрачностью 16% (отдельным слоем), текст и иконка = кастомный цвет;
|
|
124
|
+
* - `mode="outline"` — бордер, текст и иконка = кастомный цвет.
|
|
60
125
|
*/
|
|
61
|
-
appearance?:
|
|
126
|
+
appearance?: ContentBadgeAppearance | undefined;
|
|
62
127
|
/**
|
|
63
128
|
* Включает приближение значения закругления к форме круга.
|
|
64
129
|
*
|
|
@@ -105,17 +170,20 @@ export const ContentBadge: React.FC<ContentBadgeProps> & {
|
|
|
105
170
|
const typographyClassNames =
|
|
106
171
|
size === 'l' ? footnoteClassNames(density) : captionClassNames(density);
|
|
107
172
|
|
|
173
|
+
const [appearanceStyles, appearanceClassName] = resolveAppearance(appearance, mode);
|
|
174
|
+
|
|
108
175
|
return (
|
|
109
176
|
<Tappable
|
|
110
177
|
baseClassName={classNames(
|
|
111
178
|
styles.host,
|
|
112
179
|
size !== 's' && capsule && styles.capsule,
|
|
113
|
-
mode
|
|
114
|
-
|
|
180
|
+
modeClassNames[mode],
|
|
181
|
+
appearanceClassName,
|
|
115
182
|
sizeClassNames[size],
|
|
116
183
|
typographyClassNames,
|
|
117
184
|
weightClassNames(weight),
|
|
118
185
|
)}
|
|
186
|
+
baseStyle={appearanceStyles}
|
|
119
187
|
DefaultComponent="span"
|
|
120
188
|
hoverMode="opacity"
|
|
121
189
|
activeMode="opacity"
|
|
@@ -7,7 +7,6 @@ import { useAdaptivity } from '../../hooks/useAdaptivity';
|
|
|
7
7
|
import { useExternRef } from '../../hooks/useExternRef';
|
|
8
8
|
import { useMergeProps } from '../../hooks/useMergeProps';
|
|
9
9
|
import { callMultiple } from '../../lib/callMultiple';
|
|
10
|
-
import { useDOM } from '../../lib/dom';
|
|
11
10
|
import type { Placement } from '../../lib/floating';
|
|
12
11
|
import { defaultFilterFn, type FilterFn } from '../../lib/select';
|
|
13
12
|
import { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';
|
|
@@ -100,11 +99,19 @@ const FetchingStatus = ({
|
|
|
100
99
|
function updateStatus() {
|
|
101
100
|
if (fetching) {
|
|
102
101
|
setStatus('fetching');
|
|
102
|
+
return;
|
|
103
103
|
} else {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
104
|
+
let timeoutId: ReturnType<typeof setTimeout>;
|
|
105
|
+
setStatus((prevStatus) => {
|
|
106
|
+
if (prevStatus === 'fetching') {
|
|
107
|
+
timeoutId = setTimeout(() => setStatus('none'), FETCH_STATUS_RESET_DELAY);
|
|
108
|
+
return 'loaded';
|
|
109
|
+
}
|
|
110
|
+
return prevStatus;
|
|
111
|
+
});
|
|
112
|
+
return () => {
|
|
113
|
+
clearTimeout(timeoutId);
|
|
114
|
+
};
|
|
108
115
|
}
|
|
109
116
|
},
|
|
110
117
|
[fetching],
|
|
@@ -507,6 +514,7 @@ export function CustomSelect<OptionInterfaceT extends CustomSelectOptionInterfac
|
|
|
507
514
|
|
|
508
515
|
selectElRef.current?.dispatchEvent(event);
|
|
509
516
|
}
|
|
517
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
510
518
|
}, [nativeSelectValue]);
|
|
511
519
|
|
|
512
520
|
const openedClassNames = React.useMemo(
|
|
@@ -671,7 +679,6 @@ export function CustomSelect<OptionInterfaceT extends CustomSelectOptionInterfac
|
|
|
671
679
|
icon: iconProp,
|
|
672
680
|
});
|
|
673
681
|
|
|
674
|
-
const { document } = useDOM();
|
|
675
682
|
const passClickAndFocusToInputOnClick = React.useCallback(
|
|
676
683
|
(e: React.MouseEvent<HTMLDivElement>) => {
|
|
677
684
|
// Раньше внешней оберткой CustomSelect был <label>, что позволяло по клику в любую область CustomSelect,
|
|
@@ -683,7 +690,7 @@ export function CustomSelect<OptionInterfaceT extends CustomSelectOptionInterfac
|
|
|
683
690
|
// Воспроизводится в некоторых версиях Chrome, при навигации по странице с помощью стрелок.
|
|
684
691
|
// Договорились со специалистом по доступности убрать <label>-обёртки из Select и CustomSelect
|
|
685
692
|
|
|
686
|
-
if (!selectInputRef.current
|
|
693
|
+
if (!selectInputRef.current) {
|
|
687
694
|
return;
|
|
688
695
|
}
|
|
689
696
|
|
|
@@ -691,13 +698,14 @@ export function CustomSelect<OptionInterfaceT extends CustomSelectOptionInterfac
|
|
|
691
698
|
if (clickTargetIsNotAnInput) {
|
|
692
699
|
selectInputRef.current.click();
|
|
693
700
|
|
|
694
|
-
const inputIsNotFocused =
|
|
701
|
+
const inputIsNotFocused =
|
|
702
|
+
selectInputRef.current.ownerDocument.activeElement !== selectInputRef.current;
|
|
695
703
|
if (inputIsNotFocused) {
|
|
696
704
|
selectInputRef.current.focus();
|
|
697
705
|
}
|
|
698
706
|
}
|
|
699
707
|
},
|
|
700
|
-
[
|
|
708
|
+
[selectInputRef],
|
|
701
709
|
);
|
|
702
710
|
|
|
703
711
|
const preventInputBlurWhenClickInsideFocusedSelectArea = (
|
|
@@ -706,7 +714,8 @@ export function CustomSelect<OptionInterfaceT extends CustomSelectOptionInterfac
|
|
|
706
714
|
// Так как инпут больше не оборачивается пустым лэйблом, то клик внутри обертки,
|
|
707
715
|
// но вне инпута (например по иконке дропдауна), будет убирать фокус с инпута.
|
|
708
716
|
// Чтобы в такой ситуации отключить blur инпута мы превентим mousedown событие обёртки
|
|
709
|
-
const isInputFocused =
|
|
717
|
+
const isInputFocused =
|
|
718
|
+
selectInputRef.current?.ownerDocument.activeElement === selectInputRef.current;
|
|
710
719
|
if (isInputFocused) {
|
|
711
720
|
e.preventDefault();
|
|
712
721
|
}
|
|
@@ -7,6 +7,7 @@ import { useAdaptivity } from '../../hooks/useAdaptivity';
|
|
|
7
7
|
import { useDateInput } from '../../hooks/useDateInput';
|
|
8
8
|
import { useExternRef } from '../../hooks/useExternRef';
|
|
9
9
|
import { useGlobalEscKeyDown } from '../../hooks/useGlobalEscKeyDown';
|
|
10
|
+
import { useLocale } from '../../hooks/useLocale';
|
|
10
11
|
import {
|
|
11
12
|
convertDateToTimeZone,
|
|
12
13
|
createDateInTimeZone,
|
|
@@ -22,7 +23,6 @@ import { cacheDateTimeFormat } from '../../lib/intlCache';
|
|
|
22
23
|
import { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';
|
|
23
24
|
import type { HasRootRef } from '../../types';
|
|
24
25
|
import { Calendar, type CalendarProps, type CalendarTestsProps } from '../Calendar/Calendar';
|
|
25
|
-
import { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';
|
|
26
26
|
import { FocusTrap } from '../FocusTrap/FocusTrap';
|
|
27
27
|
import { FormField, type FormFieldProps } from '../FormField/FormField';
|
|
28
28
|
import { IconButton } from '../IconButton/IconButton';
|
|
@@ -388,7 +388,7 @@ export const DateInput = ({
|
|
|
388
388
|
setInternalValue(getLastUpdatedValue());
|
|
389
389
|
}
|
|
390
390
|
},
|
|
391
|
-
[open, getLastUpdatedValue],
|
|
391
|
+
[open, getLastUpdatedValue, setInternalValue],
|
|
392
392
|
);
|
|
393
393
|
|
|
394
394
|
const onCalendarChange = React.useCallback(
|
|
@@ -427,7 +427,7 @@ export const DateInput = ({
|
|
|
427
427
|
const [calendarPlacement, setCalendarPlacement] =
|
|
428
428
|
React.useState<PlacementWithAuto>(calendarPlacementProp);
|
|
429
429
|
|
|
430
|
-
const
|
|
430
|
+
const locale = useLocale();
|
|
431
431
|
const currentDateLabel = value
|
|
432
432
|
? labelDateTimeFormat(locale, labelDateTimeFormatOptions).format(value)
|
|
433
433
|
: null;
|
|
@@ -8,6 +8,7 @@ import { useDateInput } from '../../hooks/useDateInput';
|
|
|
8
8
|
import { useCustomEnsuredControl } from '../../hooks/useEnsuredControl';
|
|
9
9
|
import { useExternRef } from '../../hooks/useExternRef';
|
|
10
10
|
import { useGlobalEscKeyDown } from '../../hooks/useGlobalEscKeyDown';
|
|
11
|
+
import { useLocale } from '../../hooks/useLocale';
|
|
11
12
|
import { dateFormatter, isMatch, parse } from '../../lib/date';
|
|
12
13
|
import type { PlacementWithAuto } from '../../lib/floating';
|
|
13
14
|
import { cacheDateTimeFormat } from '../../lib/intlCache';
|
|
@@ -18,7 +19,6 @@ import {
|
|
|
18
19
|
type CalendarRangeTestsProps,
|
|
19
20
|
type DateRangeType,
|
|
20
21
|
} from '../CalendarRange/CalendarRange';
|
|
21
|
-
import { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';
|
|
22
22
|
import { FocusTrap } from '../FocusTrap/FocusTrap';
|
|
23
23
|
import { FormField, type FormFieldProps } from '../FormField/FormField';
|
|
24
24
|
import { IconButton } from '../IconButton/IconButton';
|
|
@@ -390,7 +390,7 @@ export const DateRangeInput = ({
|
|
|
390
390
|
const [calendarPlacement, setCalendarPlacement] =
|
|
391
391
|
React.useState<PlacementWithAuto>(calendarPlacementProp);
|
|
392
392
|
|
|
393
|
-
const
|
|
393
|
+
const locale = useLocale();
|
|
394
394
|
const currentDateLabel = React.useMemo(() => {
|
|
395
395
|
if (!value) {
|
|
396
396
|
return null;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { useResizeObserver } from '../../hooks/useResizeObserver';
|
|
5
|
+
import { defineComponentDisplayNames } from '../../lib/react/defineComponentDisplayNames';
|
|
6
|
+
import { setRef } from '../../lib/utils';
|
|
7
|
+
import type { HasComponent } from '../../types';
|
|
8
|
+
|
|
9
|
+
type ParentWidthWrapperProps = React.HTMLAttributes<HTMLElement> & HasComponent;
|
|
10
|
+
|
|
11
|
+
export const ParentWidthWrapper: React.ForwardRefExoticComponent<
|
|
12
|
+
React.PropsWithoutRef<ParentWidthWrapperProps> & React.RefAttributes<HTMLElement>
|
|
13
|
+
// eslint-disable-next-line react/display-name -- используется defineComponentDisplayNames
|
|
14
|
+
> = React.forwardRef<HTMLElement, ParentWidthWrapperProps>(
|
|
15
|
+
({ Component = 'div', style, ...restProps }, forwardedRef) => {
|
|
16
|
+
const rootRef = React.useRef<HTMLElement | null>(null);
|
|
17
|
+
const parentRef = React.useRef<HTMLElement | null>(null);
|
|
18
|
+
const [width, setWidth] = React.useState<string | undefined>(undefined);
|
|
19
|
+
|
|
20
|
+
const handleRootRef = React.useCallback(
|
|
21
|
+
(node: HTMLElement | null) => {
|
|
22
|
+
setRef(node, forwardedRef);
|
|
23
|
+
setRef(node, rootRef);
|
|
24
|
+
setRef(node?.parentElement ?? null, parentRef);
|
|
25
|
+
},
|
|
26
|
+
[forwardedRef],
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
const doResize = React.useCallback(() => {
|
|
30
|
+
if (!parentRef.current) {
|
|
31
|
+
setWidth(undefined);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const parentWidth = parentRef.current.getBoundingClientRect().width;
|
|
36
|
+
setWidth(parentWidth ? `${parentWidth}px` : undefined);
|
|
37
|
+
}, []);
|
|
38
|
+
|
|
39
|
+
React.useEffect(doResize, [doResize]);
|
|
40
|
+
useResizeObserver(parentRef, doResize);
|
|
41
|
+
|
|
42
|
+
return <Component {...restProps} ref={handleRootRef} style={{ width, ...style }} />;
|
|
43
|
+
},
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
47
|
+
defineComponentDisplayNames(ParentWidthWrapper, 'ParentWidthWrapper');
|
|
48
|
+
}
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
resolveLayoutProps,
|
|
8
8
|
rowGapClassNames,
|
|
9
9
|
} from '../../lib/layouts';
|
|
10
|
-
import type { LayoutProps } from '../../lib/layouts/types';
|
|
10
|
+
import type { LayoutProps, MarginProp } from '../../lib/layouts/types';
|
|
11
11
|
import type { CSSCustomProperties } from '../../types';
|
|
12
12
|
import { RootComponent } from '../RootComponent/RootComponent';
|
|
13
13
|
import type { RootComponentProps } from '../RootComponent/RootComponent';
|
|
@@ -46,7 +46,7 @@ type FlexContentProps =
|
|
|
46
46
|
| 'space-between'
|
|
47
47
|
| 'space-evenly';
|
|
48
48
|
|
|
49
|
-
export interface FlexProps extends RootComponentProps<HTMLElement>, LayoutProps {
|
|
49
|
+
export interface FlexProps extends RootComponentProps<HTMLElement>, Omit<LayoutProps, 'margin'> {
|
|
50
50
|
/**
|
|
51
51
|
* Направление осей, эквивалентно `flex-direction`.
|
|
52
52
|
*/
|
|
@@ -70,9 +70,12 @@ export interface FlexProps extends RootComponentProps<HTMLElement>, LayoutProps
|
|
|
70
70
|
*/
|
|
71
71
|
justify?: FlexContentProps | undefined;
|
|
72
72
|
/**
|
|
73
|
-
*
|
|
73
|
+
* Внешние отступы контейнера.
|
|
74
|
+
* Дополнительно поддерживаются специальные значения:
|
|
75
|
+
* `none` — отключает дополнительные отступы;
|
|
76
|
+
* `auto` — включает платформенные отступы вокруг контейнера.
|
|
74
77
|
*/
|
|
75
|
-
margin?: 'none' | 'auto' | undefined;
|
|
78
|
+
margin?: 'none' | 'auto' | MarginProp | undefined;
|
|
76
79
|
/**
|
|
77
80
|
* Для инвертирования направления, эквивалентно `row-reverse` `column-reverse`.
|
|
78
81
|
*/
|
|
@@ -104,7 +107,9 @@ export const Flex: React.FC<FlexProps> & {
|
|
|
104
107
|
...restProps
|
|
105
108
|
}: FlexProps) => {
|
|
106
109
|
const [rowGap, columnGap] = calculateGap(gap);
|
|
107
|
-
const resolvedProps = resolveLayoutProps(
|
|
110
|
+
const resolvedProps = resolveLayoutProps(
|
|
111
|
+
margin === 'none' || margin === 'auto' ? restProps : { ...restProps, margin },
|
|
112
|
+
);
|
|
108
113
|
|
|
109
114
|
return (
|
|
110
115
|
<RootComponent
|
|
@@ -113,7 +118,7 @@ export const Flex: React.FC<FlexProps> & {
|
|
|
113
118
|
!noWrap && styles.wrap,
|
|
114
119
|
reverse && styles.reverse,
|
|
115
120
|
direction !== 'row' && styles.directionColumn,
|
|
116
|
-
margin
|
|
121
|
+
margin === 'auto' && styles.marginAuto,
|
|
117
122
|
align && alignClassNames[align],
|
|
118
123
|
justify && justifyClassNames[justify],
|
|
119
124
|
getGapsPresets(rowGap, columnGap),
|
|
@@ -31,6 +31,6 @@
|
|
|
31
31
|
/* если есть минимум три элемента — выбираем второй с конца */
|
|
32
32
|
.item:nth-last-child(n + 3) ~ .item:nth-last-child(2),
|
|
33
33
|
/* четвертый с конца */
|
|
34
|
-
|
|
34
|
+
.item:nth-last-child(4) {
|
|
35
35
|
margin-block-end: var(--vkui_internal--grid_avatar_image_offset);
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["./GridAvatar.module.css"],"names":["host","in","item"],"mappings":"AAAA;AAAA,E,aAAAA,M,WAAA;AAAA,E,aAIAC,I,WAJA;AAAA,E,aAaAC,M,WAbA;AAAA,E,aAqBAA,M,WArBA;AAAA,E,aAyBAA,M,WAzBA;AAAA,E,aA0BAA,M,WA1BA;AAAA,E,aA+BAA,M,WA/BA;AAAA,E,aA+B8BA,M,WA/B9B;AAAA,E,
|
|
1
|
+
{"version":3,"sources":["./GridAvatar.module.css"],"names":["host","in","item"],"mappings":"AAAA;AAAA,E,aAAAA,M,WAAA;AAAA,E,aAIAC,I,WAJA;AAAA,E,aAaAC,M,WAbA;AAAA,E,aAqBAA,M,WArBA;AAAA,E,aAyBAA,M,WAzBA;AAAA,E,aA0BAA,M,WA1BA;AAAA,E,aA+BAA,M,WA/BA;AAAA,E,aA+B8BA,M,WA/B9B;AAAA,E,aAiCAA,M,WAjCA;AAAA;AAAA","file":"GridAvatar.module.css.d.ts","sourceRoot":""}
|
|
@@ -189,7 +189,9 @@ export const NativeSelect = ({
|
|
|
189
189
|
}
|
|
190
190
|
onChange?.(e, newValue);
|
|
191
191
|
};
|
|
192
|
-
useIsomorphicLayoutEffect(checkSelectedOption, [children]);
|
|
192
|
+
useIsomorphicLayoutEffect(checkSelectedOption, [children, placeholder, selectRef]);
|
|
193
|
+
// eslint-disable-next-line react-hooks/refs
|
|
194
|
+
const onSelectChange = callMultiple(_onChange, checkSelectedOption);
|
|
193
195
|
|
|
194
196
|
return (
|
|
195
197
|
<FormField
|
|
@@ -223,7 +225,7 @@ export const NativeSelect = ({
|
|
|
223
225
|
? remapFromSelectValueToNativeValue(defaultValue)
|
|
224
226
|
: defaultValue
|
|
225
227
|
}
|
|
226
|
-
onChange={
|
|
228
|
+
onChange={onSelectChange}
|
|
227
229
|
getRootRef={selectRef}
|
|
228
230
|
{...selectRest}
|
|
229
231
|
>
|