@vkontakte/vkui 7.0.0-dev-efd91c.2 → 7.0.0-dev-efd91c.3
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.js +2 -2
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.js +2 -3
- package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityContext.js +1 -0
- package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/components/Alert/Alert.js +2 -2
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/Alert/AlertAction.js +1 -1
- package/dist/components/Alert/AlertAction.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.d.ts +1 -1
- package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRoot.js +6 -43
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppRoot/AppRootContext.d.ts +1 -3
- package/dist/components/AppRoot/AppRootContext.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRootContext.js +0 -3
- package/dist/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.d.ts +5 -5
- package/dist/components/AppRoot/AppRootPortal.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.js +12 -29
- package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/components/AppRoot/helpers.d.ts +0 -1
- package/dist/components/AppRoot/helpers.d.ts.map +1 -1
- package/dist/components/AppRoot/helpers.js +0 -1
- package/dist/components/AppRoot/helpers.js.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.d.ts +1 -1
- package/dist/components/AspectRatio/AspectRatio.d.ts.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.js +3 -4
- package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/components/Avatar/Avatar.d.ts +2 -1
- package/dist/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/components/Avatar/Avatar.js +2 -1
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Banner/Banner.d.ts +1 -1
- package/dist/components/Banner/Banner.d.ts.map +1 -1
- package/dist/components/Banner/Banner.js +2 -3
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/Button/Button.d.ts +1 -1
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/components/Button/Button.js +2 -3
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.js +2 -3
- package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.js +2 -2
- package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/components/ColorSchemeProvider/ColorSchemeProvider.d.ts.map +1 -1
- package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js +2 -0
- package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderContext.d.ts.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderContext.js +1 -0
- package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/components/ContentBadge/ContentBadgeContext.d.ts.map +1 -1
- package/dist/components/ContentBadge/ContentBadgeContext.js +1 -0
- package/dist/components/ContentBadge/ContentBadgeContext.js.map +1 -1
- package/dist/components/Counter/Counter.d.ts.map +1 -1
- package/dist/components/Counter/Counter.js +8 -9
- package/dist/components/Counter/Counter.js.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.d.ts.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js +5 -5
- package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/components/Flex/Flex.d.ts.map +1 -1
- package/dist/components/Flex/Flex.js +2 -3
- package/dist/components/Flex/Flex.js.map +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.d.ts +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.js +4 -5
- package/dist/components/Flex/FlexItem/FlexItem.js.map +1 -1
- package/dist/components/FloatingArrow/DefaultIcon.d.ts +7 -3
- package/dist/components/FloatingArrow/DefaultIcon.d.ts.map +1 -1
- package/dist/components/FloatingArrow/DefaultIcon.js +10 -6
- package/dist/components/FloatingArrow/DefaultIcon.js.map +1 -1
- package/dist/components/FloatingArrow/FloatingArrow.d.ts +9 -2
- package/dist/components/FloatingArrow/FloatingArrow.d.ts.map +1 -1
- package/dist/components/FloatingArrow/FloatingArrow.js +9 -8
- package/dist/components/FloatingArrow/FloatingArrow.js.map +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.d.ts +11 -1
- package/dist/components/HorizontalCell/HorizontalCell.d.ts.map +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.js +15 -7
- package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/components/IconButton/IconButton.d.ts +1 -1
- package/dist/components/IconButton/IconButton.d.ts.map +1 -1
- package/dist/components/IconButton/IconButton.js +3 -4
- package/dist/components/IconButton/IconButton.js.map +1 -1
- package/dist/components/Image/Image.d.ts.map +1 -1
- package/dist/components/Image/Image.js +2 -1
- package/dist/components/Image/Image.js.map +1 -1
- package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBase.js +3 -4
- package/dist/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/components/Link/Link.d.ts +1 -1
- package/dist/components/Link/Link.d.ts.map +1 -1
- package/dist/components/Link/Link.js +3 -4
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/List/List.d.ts +1 -1
- package/dist/components/List/List.d.ts.map +1 -1
- package/dist/components/List/List.js +5 -8
- package/dist/components/List/List.js.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.d.ts +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.d.ts.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.js +4 -5
- package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.d.ts +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.d.ts.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +3 -4
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +1 -1
- package/dist/components/ModalDismissButton/ModalDismissButton.d.ts.map +1 -1
- package/dist/components/ModalDismissButton/ModalDismissButton.js +3 -5
- package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +3 -2
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootContext.d.ts.map +1 -1
- package/dist/components/ModalRoot/ModalRootContext.js +1 -0
- package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/components/ModalRoot/types.d.ts.map +1 -1
- package/dist/components/ModalRoot/types.js.map +1 -1
- package/dist/components/NavIdContext/NavIdContext.d.ts.map +1 -1
- package/dist/components/NavIdContext/NavIdContext.js +1 -0
- package/dist/components/NavIdContext/NavIdContext.js.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js +2 -4
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js +3 -4
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/Popper/Popper.d.ts +1 -1
- package/dist/components/Popper/Popper.d.ts.map +1 -1
- package/dist/components/Popper/Popper.js +2 -3
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/Progress/Progress.d.ts +1 -1
- package/dist/components/Progress/Progress.d.ts.map +1 -1
- package/dist/components/Progress/Progress.js +4 -5
- package/dist/components/Progress/Progress.js.map +1 -1
- package/dist/components/RichCell/RichCell.d.ts.map +1 -1
- package/dist/components/RichCell/RichCell.js +2 -3
- package/dist/components/RichCell/RichCell.js.map +1 -1
- package/dist/components/RootComponent/RootComponent.d.ts +2 -1
- package/dist/components/RootComponent/RootComponent.d.ts.map +1 -1
- package/dist/components/RootComponent/RootComponent.js +6 -2
- package/dist/components/RootComponent/RootComponent.js.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinner.js +2 -2
- package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/components/ScreenSpinner/context.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/context.js +1 -0
- package/dist/components/ScreenSpinner/context.js.map +1 -1
- package/dist/components/Separator/Separator.d.ts +1 -1
- package/dist/components/Separator/Separator.d.ts.map +1 -1
- package/dist/components/Separator/Separator.js +2 -3
- package/dist/components/Separator/Separator.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.js +2 -3
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/SimpleGrid/SimpleGrid.d.ts +1 -1
- package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
- package/dist/components/SimpleGrid/SimpleGrid.js +2 -3
- package/dist/components/SimpleGrid/SimpleGrid.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/components/Skeleton/Skeleton.js +2 -3
- 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 +2 -3
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/Snackbar/utils.d.ts +1 -1
- package/dist/components/Snackbar/utils.d.ts.map +1 -1
- package/dist/components/Snackbar/utils.js +6 -8
- package/dist/components/Snackbar/utils.js.map +1 -1
- package/dist/components/Spacing/Spacing.d.ts +1 -1
- package/dist/components/Spacing/Spacing.d.ts.map +1 -1
- package/dist/components/Spacing/Spacing.js +3 -4
- package/dist/components/Spacing/Spacing.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.d.ts.map +1 -1
- package/dist/components/SplitCol/SplitCol.js +3 -4
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.js +1 -5
- package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.d.ts +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.d.ts.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js +3 -4
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/TabsItem/TabsItem.d.ts +1 -1
- package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
- package/dist/components/TabsItem/TabsItem.js +2 -3
- package/dist/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/components/ToolButton/ToolButton.d.ts +1 -1
- package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/components/ToolButton/ToolButton.js +2 -3
- package/dist/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.d.ts +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.d.ts.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.js +2 -3
- package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -2
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +2 -2
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js +1 -0
- package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js +2 -2
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/Alert/AlertAction.js +1 -1
- package/dist/cssm/components/Alert/AlertAction.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +6 -43
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootContext.js +0 -3
- package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootPortal.js +12 -29
- package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cssm/components/AppRoot/helpers.js +0 -1
- package/dist/cssm/components/AppRoot/helpers.js.map +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.js +2 -5
- package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.js +2 -1
- package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.js +2 -2
- package/dist/cssm/components/Banner/Banner.js.map +1 -1
- package/dist/cssm/components/Button/Button.js +2 -2
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.js +2 -2
- package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js +2 -2
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js +2 -0
- package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +1 -0
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cssm/components/ContentBadge/ContentBadgeContext.js +1 -0
- package/dist/cssm/components/ContentBadge/ContentBadgeContext.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.js +4 -7
- package/dist/cssm/components/Counter/Counter.js.map +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +5 -6
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cssm/components/Flex/Flex.js +2 -5
- package/dist/cssm/components/Flex/Flex.js.map +1 -1
- package/dist/cssm/components/Flex/FlexItem/FlexItem.js +3 -4
- package/dist/cssm/components/Flex/FlexItem/FlexItem.js.map +1 -1
- package/dist/cssm/components/FloatingArrow/DefaultIcon.js +10 -6
- package/dist/cssm/components/FloatingArrow/DefaultIcon.js.map +1 -1
- package/dist/cssm/components/FloatingArrow/FloatingArrow.js +9 -7
- package/dist/cssm/components/FloatingArrow/FloatingArrow.js.map +1 -1
- package/dist/cssm/components/FloatingArrow/FloatingArrow.module.css +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js +12 -9
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +23 -6
- package/dist/cssm/components/IconButton/IconButton.js +2 -2
- package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
- package/dist/cssm/components/Image/Image.js +2 -4
- package/dist/cssm/components/Image/Image.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.js +3 -4
- package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/cssm/components/Link/Link.js +2 -2
- package/dist/cssm/components/Link/Link.js.map +1 -1
- package/dist/cssm/components/List/List.js +4 -6
- package/dist/cssm/components/List/List.js.map +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +3 -3
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +3 -4
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +2 -3
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/cssm/components/ModalOverlay/ModalOverlay.module.css +1 -0
- package/dist/cssm/components/ModalRoot/ModalRoot.js +3 -2
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootContext.js +1 -0
- package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/cssm/components/ModalRoot/types.js.map +1 -1
- package/dist/cssm/components/NavIdContext/NavIdContext.js +1 -0
- package/dist/cssm/components/NavIdContext/NavIdContext.js.map +1 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +2 -4
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +2 -2
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.js +2 -5
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/Progress/Progress.js +2 -5
- package/dist/cssm/components/Progress/Progress.js.map +1 -1
- package/dist/cssm/components/RichCell/RichCell.js +2 -2
- package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
- package/dist/cssm/components/RootComponent/RootComponent.js +3 -1
- package/dist/cssm/components/RootComponent/RootComponent.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +2 -2
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/context.js +1 -0
- package/dist/cssm/components/ScreenSpinner/context.js.map +1 -1
- package/dist/cssm/components/Separator/Separator.js +2 -5
- package/dist/cssm/components/Separator/Separator.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js +2 -2
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SimpleGrid/SimpleGrid.js +2 -5
- package/dist/cssm/components/SimpleGrid/SimpleGrid.js.map +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.js +2 -5
- package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.js +2 -2
- package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cssm/components/Snackbar/utils.js +2 -4
- package/dist/cssm/components/Snackbar/utils.js.map +1 -1
- package/dist/cssm/components/Spacing/Spacing.js +2 -5
- package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.js +3 -4
- package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.js +1 -5
- package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +2 -2
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js +2 -2
- package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.js +2 -2
- package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +2 -2
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cssm/helpers/mergeStyle.js +16 -0
- package/dist/cssm/helpers/mergeStyle.js.map +1 -0
- package/dist/cssm/hooks/useBooleanState.js +2 -4
- package/dist/cssm/hooks/useBooleanState.js.map +1 -1
- package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js +13 -5
- package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
- package/dist/cssm/index.js +1 -1
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/styles/common.css +5 -0
- package/dist/cssm/styles/themes.css +7 -9
- package/dist/cssm/types.js.map +1 -1
- package/dist/helpers/getMergedSameEventsByProps.d.ts.map +1 -1
- package/dist/helpers/mergeStyle.d.ts +11 -0
- package/dist/helpers/mergeStyle.d.ts.map +1 -0
- package/dist/helpers/mergeStyle.js +14 -0
- package/dist/helpers/mergeStyle.js.map +1 -0
- package/dist/hooks/useBooleanState.js +2 -4
- package/dist/hooks/useBooleanState.js.map +1 -1
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts.map +1 -1
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js +15 -6
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +8 -6
- package/src/components/ActionSheet/ActionSheet.tsx +3 -3
- package/src/components/ActionSheetItem/ActionSheetItem.tsx +1 -3
- package/src/components/AdaptivityProvider/AdaptivityContext.tsx +2 -0
- package/src/components/Alert/Alert.tsx +3 -3
- package/src/components/Alert/AlertAction.tsx +1 -1
- package/src/components/AppRoot/AppRoot.tsx +4 -49
- package/src/components/AppRoot/AppRootContext.ts +1 -6
- package/src/components/AppRoot/AppRootPortal.tsx +22 -40
- package/src/components/AppRoot/helpers.ts +0 -3
- package/src/components/AspectRatio/AspectRatio.tsx +2 -7
- package/src/components/Avatar/Avatar.tsx +6 -2
- package/src/components/Banner/Banner.tsx +0 -2
- package/src/components/Button/Button.tsx +1 -3
- package/src/components/CalendarDay/CalendarDay.tsx +1 -2
- package/src/components/CalendarHeader/CalendarHeader.tsx +2 -2
- package/src/components/ColorSchemeProvider/ColorSchemeProvider.tsx +4 -0
- package/src/components/ConfigProvider/ConfigProviderContext.tsx +2 -0
- package/src/components/ContentBadge/ContentBadgeContext.tsx +2 -0
- package/src/components/Counter/Counter.tsx +20 -21
- package/src/components/CustomSelectOption/CustomSelectOption.tsx +6 -6
- package/src/components/Flex/Flex.tsx +1 -2
- package/src/components/Flex/FlexItem/FlexItem.tsx +1 -2
- package/src/components/FloatingArrow/DefaultIcon.tsx +11 -8
- package/src/components/FloatingArrow/FloatingArrow.module.css +1 -1
- package/src/components/FloatingArrow/FloatingArrow.tsx +9 -8
- package/src/components/HorizontalCell/HorizontalCell.module.css +23 -6
- package/src/components/HorizontalCell/HorizontalCell.tsx +38 -6
- package/src/components/IconButton/IconButton.tsx +2 -8
- package/src/components/Image/Image.tsx +4 -2
- package/src/components/ImageBase/ImageBase.tsx +1 -2
- package/src/components/Link/Link.tsx +1 -3
- package/src/components/List/List.tsx +3 -11
- package/src/components/MiniInfoCell/MiniInfoCell.tsx +1 -3
- package/src/components/ModalCardBase/ModalCardBase.tsx +1 -3
- package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -3
- package/src/components/ModalOverlay/ModalOverlay.module.css +1 -0
- package/src/components/ModalRoot/ModalRoot.tsx +8 -4
- package/src/components/ModalRoot/ModalRootContext.tsx +2 -0
- package/src/components/ModalRoot/types.ts +1 -0
- package/src/components/NavIdContext/NavIdContext.tsx +2 -0
- package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +2 -5
- package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +1 -3
- package/src/components/Popper/Popper.tsx +7 -11
- package/src/components/Progress/Progress.tsx +1 -2
- package/src/components/RichCell/RichCell.tsx +1 -3
- package/src/components/RootComponent/RootComponent.tsx +5 -0
- package/src/components/ScreenSpinner/ScreenSpinner.tsx +3 -3
- package/src/components/ScreenSpinner/context.ts +2 -0
- package/src/components/Separator/Separator.tsx +1 -9
- package/src/components/SimpleCell/SimpleCell.tsx +1 -3
- package/src/components/SimpleGrid/SimpleGrid.tsx +1 -2
- package/src/components/Skeleton/Skeleton.tsx +1 -2
- package/src/components/Snackbar/Snackbar.tsx +1 -2
- package/src/components/Snackbar/utils.ts +3 -4
- package/src/components/Spacing/Spacing.tsx +2 -9
- package/src/components/SplitCol/SplitCol.tsx +1 -3
- package/src/components/SplitLayout/SplitLayout.tsx +1 -7
- package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -3
- package/src/components/TabsItem/TabsItem.tsx +1 -3
- package/src/components/ToolButton/ToolButton.tsx +1 -3
- package/src/components/WriteBarIcon/WriteBarIcon.tsx +1 -3
- package/src/helpers/mergeStyle.ts +15 -0
- package/src/hooks/useBooleanState.ts +2 -2
- package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +10 -5
- package/src/index.ts +3 -3
- package/src/styles/common.css +7 -0
- package/src/types.ts +4 -1
- package/dist/components/AppRoot/ModalPopoutPortal.d.ts +0 -11
- package/dist/components/AppRoot/ModalPopoutPortal.d.ts.map +0 -1
- package/dist/components/AppRoot/ModalPopoutPortal.js +0 -28
- package/dist/components/AppRoot/ModalPopoutPortal.js.map +0 -1
- package/dist/cssm/components/AppRoot/ModalPopoutPortal.js +0 -27
- package/dist/cssm/components/AppRoot/ModalPopoutPortal.js.map +0 -1
- package/src/components/AppRoot/ModalPopoutPortal.tsx +0 -27
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/CustomSelectOption/CustomSelectOption.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon16Done } from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Paragraph } from '../Typography/Paragraph/Paragraph';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CustomSelectOption.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n regular: styles.sizeYRegular,\n};\n\nexport interface CustomSelectOptionProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Добавляет описание под основным блоком.\n */\n description?: React.ReactNode;\n /**\n * Вставляет элемент в начало блока перед основным контентом.\n * Например, можно передать компонент `Avatar`, `Icon<Name>` или другие изображения.\n */\n before?: React.ReactNode;\n /**\n * Вставляет элемент в конец блока после основного контента.\n * Например, можно передать компонент `Avatar`, `Icon<Name>` или другие изображения.\n */\n after?: React.ReactNode;\n /**\n * Позволяет создавать вложенность.\n */\n hierarchy?: number;\n /**\n * Включает состояние выбранного элемента списка.\n */\n selected?: boolean;\n /**\n * Включает состояние наведения.\n */\n hovered?: boolean;\n /**\n * Включает состояние фокуса.\n */\n focused?: boolean;\n /**\n * Блокирует весь блок.\n *\n * > ⚠️ Важно: если CustomSelectOption используется внутри [Select](https://vkcom.github.io/VKUI/#/Select), [CustomSelect](https://vkcom.github.io/VKUI/#/CustomSelect) или [ChipsSelect](https://vkcom.github.io/VKUI/#/ChipsSelect), то свойство явно должно выставляться только через структуру `options`.\n * > Запрещается выставлять `disabled` проп опциям в обход `options`, иначе [CustomSelect](https://vkcom.github.io/VKUI/#/CustomSelect) и [ChipsSelect](https://vkcom.github.io/VKUI/#/ChipsSelect) не будут знать об актуальном состоянии\n * опции.\n */\n disabled?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CustomSelectOption\n */\nexport const CustomSelectOption = ({\n children,\n hierarchy = 0,\n hovered: hoveredProp,\n selected,\n before,\n after,\n description,\n disabled,\n style: styleProp,\n className,\n onClick,\n ...restProps\n}: CustomSelectOptionProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n const style = React.useMemo(\n () =>\n hierarchy > 0\n ? {\n '--vkui_internal--custom_select_option_hierarchy_level': hierarchy,\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CustomSelectOption/CustomSelectOption.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon16Done } from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Paragraph } from '../Typography/Paragraph/Paragraph';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CustomSelectOption.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n regular: styles.sizeYRegular,\n};\n\nexport interface CustomSelectOptionProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Добавляет описание под основным блоком.\n */\n description?: React.ReactNode;\n /**\n * Вставляет элемент в начало блока перед основным контентом.\n * Например, можно передать компонент `Avatar`, `Icon<Name>` или другие изображения.\n */\n before?: React.ReactNode;\n /**\n * Вставляет элемент в конец блока после основного контента.\n * Например, можно передать компонент `Avatar`, `Icon<Name>` или другие изображения.\n */\n after?: React.ReactNode;\n /**\n * Позволяет создавать вложенность.\n */\n hierarchy?: number;\n /**\n * Включает состояние выбранного элемента списка.\n */\n selected?: boolean;\n /**\n * Включает состояние наведения.\n */\n hovered?: boolean;\n /**\n * Включает состояние фокуса.\n */\n focused?: boolean;\n /**\n * Блокирует весь блок.\n *\n * > ⚠️ Важно: если CustomSelectOption используется внутри [Select](https://vkcom.github.io/VKUI/#/Select), [CustomSelect](https://vkcom.github.io/VKUI/#/CustomSelect) или [ChipsSelect](https://vkcom.github.io/VKUI/#/ChipsSelect), то свойство явно должно выставляться только через структуру `options`.\n * > Запрещается выставлять `disabled` проп опциям в обход `options`, иначе [CustomSelect](https://vkcom.github.io/VKUI/#/CustomSelect) и [ChipsSelect](https://vkcom.github.io/VKUI/#/ChipsSelect) не будут знать об актуальном состоянии\n * опции.\n */\n disabled?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CustomSelectOption\n */\nexport const CustomSelectOption = ({\n children,\n hierarchy = 0,\n hovered: hoveredProp,\n selected,\n before,\n after,\n description,\n disabled,\n style: styleProp,\n className,\n onClick,\n ...restProps\n}: CustomSelectOptionProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n const style: (React.CSSProperties & CSSCustomProperties<number>) | undefined = React.useMemo(\n () =>\n hierarchy > 0\n ? {\n '--vkui_internal--custom_select_option_hierarchy_level': hierarchy,\n }\n : undefined,\n [hierarchy],\n );\n const hovered = hoveredProp && !disabled ? true : false;\n\n return (\n <Paragraph\n {...restProps}\n onClick={disabled ? undefined : onClick}\n Component=\"div\"\n role=\"option\"\n aria-disabled={disabled}\n aria-selected={selected}\n data-hovered={hovered}\n className={classNames(\n styles.host,\n sizeY !== 'compact' && sizeYClassNames[sizeY],\n hovered && styles.hover,\n disabled && styles.disabled,\n hierarchy > 0 && styles.hierarchy,\n className,\n )}\n style={mergeStyle(style, styleProp)}\n >\n {hasReactNode(before) && <div className={styles.before}>{before}</div>}\n <div className={styles.main}>\n <div className={styles.children}>{children}</div>\n {hasReactNode(description) && (\n <Footnote className={styles.description}>\n <VisuallyHidden> </VisuallyHidden>\n {description}\n </Footnote>\n )}\n </div>\n <div className={styles.after}>\n {hasReactNode(after) && <div>{after}</div>}\n {selected && <Icon16Done className={styles.selectedIcon} />}\n </div>\n </Paragraph>\n );\n};\n"],"names":["React","Icon16Done","classNames","hasReactNode","mergeStyle","useAdaptivity","Footnote","Paragraph","VisuallyHidden","styles","sizeYClassNames","none","sizeYNone","regular","sizeYRegular","CustomSelectOption","children","hierarchy","hovered","hoveredProp","selected","before","after","description","disabled","style","styleProp","className","onClick","restProps","sizeY","useMemo","undefined","Component","role","aria-disabled","aria-selected","data-hovered","host","hover","div","main","selectedIcon"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,mBAAmB;AAC9C,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,UAAU,QAAQ,8BAA2B;AACtD,SAASC,aAAa,QAAQ,+BAA4B;AAE1D,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,SAAS,QAAQ,uCAAoC;AAC9D,SAASC,cAAc,QAAQ,sCAAmC;AAClE,OAAOC,YAAY,kCAAkC;AAErD,MAAMC,kBAAkB;IACtBC,MAAMF,OAAOG,SAAS;IACtBC,SAASJ,OAAOK,YAAY;AAC9B;AA2CA;;CAEC,GACD,OAAO,MAAMC,qBAAqB,CAAC,EACjCC,QAAQ,EACRC,YAAY,CAAC,EACbC,SAASC,WAAW,EACpBC,QAAQ,EACRC,MAAM,EACNC,KAAK,EACLC,WAAW,EACXC,QAAQ,EACRC,OAAOC,SAAS,EAChBC,SAAS,EACTC,OAAO,EACP,GAAGC,WACqB;IACxB,MAAM,EAAEC,QAAQ,MAAM,EAAE,GAAGzB;IAC3B,MAAMoB,QAAyEzB,MAAM+B,OAAO,CAC1F,IACEd,YAAY,IACR;YACE,yDAAyDA;QAC3D,IACAe,WACN;QAACf;KAAU;IAEb,MAAMC,UAAUC,eAAe,CAACK,WAAW,OAAO;IAElD,qBACE,MAACjB;QACE,GAAGsB,SAAS;QACbD,SAASJ,WAAWQ,YAAYJ;QAChCK,WAAU;QACVC,MAAK;QACLC,iBAAeX;QACfY,iBAAehB;QACfiB,gBAAcnB;QACdS,WAAWzB,WACTO,OAAO6B,IAAI,EACXR,UAAU,aAAapB,eAAe,CAACoB,MAAM,EAC7CZ,WAAWT,OAAO8B,KAAK,EACvBf,YAAYf,OAAOe,QAAQ,EAC3BP,YAAY,KAAKR,OAAOQ,SAAS,EACjCU;QAEFF,OAAOrB,WAAWqB,OAAOC;;YAExBvB,aAAakB,yBAAW,KAACmB;gBAAIb,WAAWlB,OAAOY,MAAM;0BAAGA;;0BACzD,MAACmB;gBAAIb,WAAWlB,OAAOgC,IAAI;;kCACzB,KAACD;wBAAIb,WAAWlB,OAAOO,QAAQ;kCAAGA;;oBACjCb,aAAaoB,8BACZ,MAACjB;wBAASqB,WAAWlB,OAAOc,WAAW;;0CACrC,KAACf;0CAAe;;4BACfe;;;;;0BAIP,MAACiB;gBAAIb,WAAWlB,OAAOa,KAAK;;oBACzBnB,aAAamB,wBAAU,KAACkB;kCAAKlB;;oBAC7BF,0BAAY,KAACnB;wBAAW0B,WAAWlB,OAAOiC,YAAY;;;;;;AAI/D,EAAE"}
|
|
@@ -20,16 +20,13 @@ const alignClassNames = {
|
|
|
20
20
|
stretch: styles.alignStretch,
|
|
21
21
|
baseline: styles.alignBaseline
|
|
22
22
|
};
|
|
23
|
-
export const Flex = ({ gap, align, justify, margin = 'none', noWrap = false, direction = 'row',
|
|
23
|
+
export const Flex = ({ gap, align, justify, margin = 'none', noWrap = false, direction = 'row', reverse = false, children, ...props })=>{
|
|
24
24
|
const withGaps = Children.count(children) > 1 && gap;
|
|
25
25
|
const [rowGap, columnGap] = calculateGap(withGaps ? gap : undefined);
|
|
26
26
|
return /*#__PURE__*/ _jsx(RootComponent, {
|
|
27
27
|
...props,
|
|
28
28
|
baseClassName: classNames(styles.host, !noWrap && styles.wrap, reverse && styles.reverse, direction !== 'row' && styles.directionColumn, margin !== 'none' && styles.marginAuto, align && alignClassNames[align], justify && justifyClassNames[justify], withGaps && styles.withGaps, withGaps && getGapsPresets(rowGap, columnGap)),
|
|
29
|
-
|
|
30
|
-
...getGapsByUser(rowGap, columnGap),
|
|
31
|
-
...styleProp
|
|
32
|
-
} : styleProp,
|
|
29
|
+
baseStyle: getGapsByUser(rowGap, columnGap),
|
|
33
30
|
children: children
|
|
34
31
|
});
|
|
35
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Flex/Flex.tsx"],"sourcesContent":["import { Children } from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport {\n calculateGap,\n columnGapClassNames,\n type GapProp,\n type GapsProp,\n rowGapClassNames,\n} from '../../lib/layouts';\nimport type { CSSCustomProperties } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport type { RootComponentProps } from '../RootComponent/RootComponent';\nimport { FlexItem, type FlexItemProps } from './FlexItem/FlexItem';\nimport styles from './Flex.module.css';\n\nexport type { FlexItemProps };\n\nconst justifyClassNames = {\n 'start': styles.justifyStart,\n 'end': styles.justifyEnd,\n 'center': styles.justifyCenter,\n 'space-around': styles.justifySpaceAround,\n 'space-between': styles.justifySpaceBetween,\n 'space-evenly': styles.justifySpaceEvenly,\n};\n\nconst alignClassNames = {\n start: styles.alignStart,\n end: styles.alignEnd,\n center: styles.alignCenter,\n stretch: styles.alignStretch,\n baseline: styles.alignBaseline,\n};\n\ntype FlexContentProps =\n | 'start'\n | 'end'\n | 'center'\n | 'space-around'\n | 'space-between'\n | 'space-evenly';\n\nexport interface FlexProps extends Omit<RootComponentProps<HTMLElement>, 'baseClassName'> {\n /**\n * Направление осей, эквивалентно `flex-direction`.\n */\n direction?: 'row' | 'column';\n /**\n * Отступы между элементами.\n * Значение из списка предопределённых пресетов или число, которое будет приведено к пикселям.\n * Через массив можно задать отступ между столбцами и строками [row, column], если они отличаются.\n */\n gap?: GapsProp;\n /**\n * Отключает перенос контента, эквивалентно `flex-wrap=nowrap`.\n */\n noWrap?: boolean;\n /**\n * Выравнивание элементов по вспомогательной оси, эквивалентно `align-items`.\n */\n align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline';\n /**\n * Выравнивание элементов по главной оси, эквивалентно `justify-content`.\n */\n justify?: FlexContentProps;\n /**\n * Значение `auto` позволяет задать платформенные отступы вокруг контейнера.\n */\n margin?: 'none' | 'auto';\n /**\n * Для инвертирования направления, эквивалентно `row-reverse` `column-reverse`.\n */\n reverse?: boolean;\n}\n\nexport const Flex: React.FC<FlexProps> & {\n Item: typeof FlexItem;\n} = ({\n gap,\n align,\n justify,\n margin = 'none',\n noWrap = false,\n direction = 'row',\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Flex/Flex.tsx"],"sourcesContent":["import { Children } from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport {\n calculateGap,\n columnGapClassNames,\n type GapProp,\n type GapsProp,\n rowGapClassNames,\n} from '../../lib/layouts';\nimport type { CSSCustomProperties } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport type { RootComponentProps } from '../RootComponent/RootComponent';\nimport { FlexItem, type FlexItemProps } from './FlexItem/FlexItem';\nimport styles from './Flex.module.css';\n\nexport type { FlexItemProps };\n\nconst justifyClassNames = {\n 'start': styles.justifyStart,\n 'end': styles.justifyEnd,\n 'center': styles.justifyCenter,\n 'space-around': styles.justifySpaceAround,\n 'space-between': styles.justifySpaceBetween,\n 'space-evenly': styles.justifySpaceEvenly,\n};\n\nconst alignClassNames = {\n start: styles.alignStart,\n end: styles.alignEnd,\n center: styles.alignCenter,\n stretch: styles.alignStretch,\n baseline: styles.alignBaseline,\n};\n\ntype FlexContentProps =\n | 'start'\n | 'end'\n | 'center'\n | 'space-around'\n | 'space-between'\n | 'space-evenly';\n\nexport interface FlexProps extends Omit<RootComponentProps<HTMLElement>, 'baseClassName'> {\n /**\n * Направление осей, эквивалентно `flex-direction`.\n */\n direction?: 'row' | 'column';\n /**\n * Отступы между элементами.\n * Значение из списка предопределённых пресетов или число, которое будет приведено к пикселям.\n * Через массив можно задать отступ между столбцами и строками [row, column], если они отличаются.\n */\n gap?: GapsProp;\n /**\n * Отключает перенос контента, эквивалентно `flex-wrap=nowrap`.\n */\n noWrap?: boolean;\n /**\n * Выравнивание элементов по вспомогательной оси, эквивалентно `align-items`.\n */\n align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline';\n /**\n * Выравнивание элементов по главной оси, эквивалентно `justify-content`.\n */\n justify?: FlexContentProps;\n /**\n * Значение `auto` позволяет задать платформенные отступы вокруг контейнера.\n */\n margin?: 'none' | 'auto';\n /**\n * Для инвертирования направления, эквивалентно `row-reverse` `column-reverse`.\n */\n reverse?: boolean;\n}\n\nexport const Flex: React.FC<FlexProps> & {\n Item: typeof FlexItem;\n} = ({\n gap,\n align,\n justify,\n margin = 'none',\n noWrap = false,\n direction = 'row',\n reverse = false,\n children,\n ...props\n}: FlexProps) => {\n const withGaps = Children.count(children) > 1 && gap;\n const [rowGap, columnGap] = calculateGap(withGaps ? gap : undefined);\n\n return (\n <RootComponent\n {...props}\n baseClassName={classNames(\n styles.host,\n !noWrap && styles.wrap,\n reverse && styles.reverse,\n direction !== 'row' && styles.directionColumn,\n margin !== 'none' && styles.marginAuto,\n align && alignClassNames[align],\n justify && justifyClassNames[justify],\n withGaps && styles.withGaps,\n withGaps && getGapsPresets(rowGap, columnGap),\n )}\n baseStyle={getGapsByUser(rowGap, columnGap)}\n >\n {children}\n </RootComponent>\n );\n};\n\nfunction getGapsPresets(rowGap?: GapProp, columnGap?: GapProp) {\n return classNames(\n typeof rowGap === 'string' && rowGapClassNames[rowGap],\n typeof columnGap === 'string' && columnGapClassNames[columnGap],\n );\n}\n\nfunction getGapsByUser(rowGap?: GapProp, columnGap?: GapProp) {\n const style: CSSCustomProperties = {};\n\n if (typeof rowGap === 'number') {\n style['--vkui_internal--row_gap'] = `${rowGap}px`;\n }\n if (typeof columnGap === 'number') {\n style['--vkui_internal--column_gap'] = `${columnGap}px`;\n }\n\n return style;\n}\n\nFlex.Item = FlexItem;\n"],"names":["Children","classNames","calculateGap","columnGapClassNames","rowGapClassNames","RootComponent","FlexItem","styles","justifyClassNames","justifyStart","justifyEnd","justifyCenter","justifySpaceAround","justifySpaceBetween","justifySpaceEvenly","alignClassNames","start","alignStart","end","alignEnd","center","alignCenter","stretch","alignStretch","baseline","alignBaseline","Flex","gap","align","justify","margin","noWrap","direction","reverse","children","props","withGaps","count","rowGap","columnGap","undefined","baseClassName","host","wrap","directionColumn","marginAuto","getGapsPresets","baseStyle","getGapsByUser","style","Item"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,QAAQ;AACjC,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SACEC,YAAY,EACZC,mBAAmB,EAGnBC,gBAAgB,QACX,6BAAoB;AAE3B,SAASC,aAAa,QAAQ,oCAAiC;AAE/D,SAASC,QAAQ,QAA4B,yBAAsB;AACnE,OAAOC,YAAY,oBAAoB;AAIvC,MAAMC,oBAAoB;IACxB,SAASD,OAAOE,YAAY;IAC5B,OAAOF,OAAOG,UAAU;IACxB,UAAUH,OAAOI,aAAa;IAC9B,gBAAgBJ,OAAOK,kBAAkB;IACzC,iBAAiBL,OAAOM,mBAAmB;IAC3C,gBAAgBN,OAAOO,kBAAkB;AAC3C;AAEA,MAAMC,kBAAkB;IACtBC,OAAOT,OAAOU,UAAU;IACxBC,KAAKX,OAAOY,QAAQ;IACpBC,QAAQb,OAAOc,WAAW;IAC1BC,SAASf,OAAOgB,YAAY;IAC5BC,UAAUjB,OAAOkB,aAAa;AAChC;AA2CA,OAAO,MAAMC,OAET,CAAC,EACHC,GAAG,EACHC,KAAK,EACLC,OAAO,EACPC,SAAS,MAAM,EACfC,SAAS,KAAK,EACdC,YAAY,KAAK,EACjBC,UAAU,KAAK,EACfC,QAAQ,EACR,GAAGC,OACO;IACV,MAAMC,WAAWpC,SAASqC,KAAK,CAACH,YAAY,KAAKP;IACjD,MAAM,CAACW,QAAQC,UAAU,GAAGrC,aAAakC,WAAWT,MAAMa;IAE1D,qBACE,KAACnC;QACE,GAAG8B,KAAK;QACTM,eAAexC,WACbM,OAAOmC,IAAI,EACX,CAACX,UAAUxB,OAAOoC,IAAI,EACtBV,WAAW1B,OAAO0B,OAAO,EACzBD,cAAc,SAASzB,OAAOqC,eAAe,EAC7Cd,WAAW,UAAUvB,OAAOsC,UAAU,EACtCjB,SAASb,eAAe,CAACa,MAAM,EAC/BC,WAAWrB,iBAAiB,CAACqB,QAAQ,EACrCO,YAAY7B,OAAO6B,QAAQ,EAC3BA,YAAYU,eAAeR,QAAQC;QAErCQ,WAAWC,cAAcV,QAAQC;kBAEhCL;;AAGP,EAAE;AAEF,SAASY,eAAeR,MAAgB,EAAEC,SAAmB;IAC3D,OAAOtC,WACL,OAAOqC,WAAW,YAAYlC,gBAAgB,CAACkC,OAAO,EACtD,OAAOC,cAAc,YAAYpC,mBAAmB,CAACoC,UAAU;AAEnE;AAEA,SAASS,cAAcV,MAAgB,EAAEC,SAAmB;IAC1D,MAAMU,QAA6B,CAAC;IAEpC,IAAI,OAAOX,WAAW,UAAU;QAC9BW,KAAK,CAAC,2BAA2B,GAAG,GAAGX,OAAO,EAAE,CAAC;IACnD;IACA,IAAI,OAAOC,cAAc,UAAU;QACjCU,KAAK,CAAC,8BAA8B,GAAG,GAAGV,UAAU,EAAE,CAAC;IACzD;IAEA,OAAOU;AACT;AAEAvB,KAAKwB,IAAI,GAAG5C"}
|
|
@@ -15,12 +15,11 @@ const alignSelfClassNames = {
|
|
|
15
15
|
baseline: styles.alignSelfBaseline,
|
|
16
16
|
stretch: styles.alignSelfStretch
|
|
17
17
|
};
|
|
18
|
-
export const FlexItem = ({ children, alignSelf, flex, flexBasis,
|
|
18
|
+
export const FlexItem = ({ children, alignSelf, flex, flexBasis, ...rest })=>{
|
|
19
19
|
return /*#__PURE__*/ _jsx(RootComponent, {
|
|
20
20
|
...rest,
|
|
21
|
-
|
|
22
|
-
flexBasis
|
|
23
|
-
...style
|
|
21
|
+
baseStyle: {
|
|
22
|
+
flexBasis
|
|
24
23
|
},
|
|
25
24
|
baseClassName: classNames(alignSelf && alignSelfClassNames[alignSelf], flex && flexClassNames[flex]),
|
|
26
25
|
children: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Flex/FlexItem/FlexItem.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport type { HasChildren } from '../../../types';\nimport { RootComponent } from '../../RootComponent/RootComponent';\nimport type { RootComponentProps } from '../../RootComponent/RootComponent';\nimport styles from './FlexItem.module.css';\n\nconst flexClassNames = {\n grow: styles.flexGrow,\n shrink: styles.flexShrink,\n content: styles.flexContent,\n fixed: styles.flexFixed,\n};\n\nconst alignSelfClassNames = {\n start: styles.alignSelfStart,\n end: styles.alignSelfEnd,\n center: styles.alignSelfCenter,\n baseline: styles.alignSelfBaseline,\n stretch: styles.alignSelfStretch,\n};\n\nexport interface FlexItemProps\n extends Omit<RootComponentProps<HTMLElement>, 'baseClassName'>,\n HasChildren {\n /**\n * Для задания выравнивания, отлично от родительского, эквивалентно `align-self`\n */\n alignSelf?: 'start' | 'end' | 'center' | 'baseline' | 'stretch';\n /**\n * Позволяет задать предопределенные значения свойства `flex`:\n *\n * - `grow` соответствует значению `1 0 auto`\n * - `shrink` соответствует значению `0 1 auto`\n * - `content` соответствует значению `1 1 auto`\n * - `fixed` соответствует значению `0 0 auto`\n */\n flex?: 'grow' | 'shrink' | 'content' | 'fixed';\n /**\n * Изначальный размер элемента, эквивалентно `flex-basis`\n */\n flexBasis?: number | string;\n}\n\nexport const FlexItem = ({\n children,\n alignSelf,\n flex,\n flexBasis,\n
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Flex/FlexItem/FlexItem.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport type { HasChildren } from '../../../types';\nimport { RootComponent } from '../../RootComponent/RootComponent';\nimport type { RootComponentProps } from '../../RootComponent/RootComponent';\nimport styles from './FlexItem.module.css';\n\nconst flexClassNames = {\n grow: styles.flexGrow,\n shrink: styles.flexShrink,\n content: styles.flexContent,\n fixed: styles.flexFixed,\n};\n\nconst alignSelfClassNames = {\n start: styles.alignSelfStart,\n end: styles.alignSelfEnd,\n center: styles.alignSelfCenter,\n baseline: styles.alignSelfBaseline,\n stretch: styles.alignSelfStretch,\n};\n\nexport interface FlexItemProps\n extends Omit<RootComponentProps<HTMLElement>, 'baseClassName'>,\n HasChildren {\n /**\n * Для задания выравнивания, отлично от родительского, эквивалентно `align-self`\n */\n alignSelf?: 'start' | 'end' | 'center' | 'baseline' | 'stretch';\n /**\n * Позволяет задать предопределенные значения свойства `flex`:\n *\n * - `grow` соответствует значению `1 0 auto`\n * - `shrink` соответствует значению `0 1 auto`\n * - `content` соответствует значению `1 1 auto`\n * - `fixed` соответствует значению `0 0 auto`\n */\n flex?: 'grow' | 'shrink' | 'content' | 'fixed';\n /**\n * Изначальный размер элемента, эквивалентно `flex-basis`\n */\n flexBasis?: number | string;\n}\n\nexport const FlexItem = ({\n children,\n alignSelf,\n flex,\n flexBasis,\n ...rest\n}: FlexItemProps): React.ReactNode => {\n return (\n <RootComponent\n {...rest}\n baseStyle={{ flexBasis }}\n baseClassName={classNames(\n alignSelf && alignSelfClassNames[alignSelf],\n flex && flexClassNames[flex],\n )}\n >\n {children}\n </RootComponent>\n );\n};\n"],"names":["classNames","RootComponent","styles","flexClassNames","grow","flexGrow","shrink","flexShrink","content","flexContent","fixed","flexFixed","alignSelfClassNames","start","alignSelfStart","end","alignSelfEnd","center","alignSelfCenter","baseline","alignSelfBaseline","stretch","alignSelfStretch","FlexItem","children","alignSelf","flex","flexBasis","rest","baseStyle","baseClassName"],"mappings":";AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,uCAAoC;AAElE,OAAOC,YAAY,wBAAwB;AAE3C,MAAMC,iBAAiB;IACrBC,MAAMF,OAAOG,QAAQ;IACrBC,QAAQJ,OAAOK,UAAU;IACzBC,SAASN,OAAOO,WAAW;IAC3BC,OAAOR,OAAOS,SAAS;AACzB;AAEA,MAAMC,sBAAsB;IAC1BC,OAAOX,OAAOY,cAAc;IAC5BC,KAAKb,OAAOc,YAAY;IACxBC,QAAQf,OAAOgB,eAAe;IAC9BC,UAAUjB,OAAOkB,iBAAiB;IAClCC,SAASnB,OAAOoB,gBAAgB;AAClC;AAwBA,OAAO,MAAMC,WAAW,CAAC,EACvBC,QAAQ,EACRC,SAAS,EACTC,IAAI,EACJC,SAAS,EACT,GAAGC,MACW;IACd,qBACE,KAAC3B;QACE,GAAG2B,IAAI;QACRC,WAAW;YAAEF;QAAU;QACvBG,eAAe9B,WACbyB,aAAab,mBAAmB,CAACa,UAAU,EAC3CC,QAAQvB,cAAc,CAACuB,KAAK;kBAG7BF;;AAGP,EAAE"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import * as React from "react";
|
|
3
|
+
export const DEFAULT_ARROW_WIDTH = 20;
|
|
4
|
+
export const DEFAULT_ARROW_HEIGHT = 8;
|
|
5
|
+
export const DEFAULT_ARROW_PADDING = 10;
|
|
6
|
+
const PLATFORM_HEIGHT = 1;
|
|
7
|
+
const ARROW_HEIGHT_WITH_WHITE_SPACE = DEFAULT_ARROW_HEIGHT + PLATFORM_HEIGHT;
|
|
3
8
|
/**
|
|
9
|
+
* Стрелка для всплывающих окон.
|
|
10
|
+
*
|
|
4
11
|
* Примечание 1.
|
|
5
12
|
*
|
|
6
13
|
* В компоненте, SVG элемент `<path />` представляет собой стрелку с платформой в виде прямоугольника в 1px. Платформа
|
|
@@ -12,12 +19,9 @@ import * as React from "react";
|
|
|
12
19
|
* 2. Сместить положение SVG контейнера на высоту платформы – сделано в CSS через `translateY(1px)`.
|
|
13
20
|
*
|
|
14
21
|
* https://github.com/VKCOM/VKUI/issues/2123
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export const
|
|
18
|
-
const PLATFORM_HEIGHT = 1;
|
|
19
|
-
const ARROW_HEIGHT_WITH_WHITE_SPACE = DEFAULT_ARROW_HEIGHT + PLATFORM_HEIGHT;
|
|
20
|
-
export const DefaultIcon = (props)=>{
|
|
22
|
+
*
|
|
23
|
+
* @since 7.0.0
|
|
24
|
+
*/ export const DefaultIcon = (props)=>{
|
|
21
25
|
return /*#__PURE__*/ _jsx("svg", {
|
|
22
26
|
width: DEFAULT_ARROW_WIDTH,
|
|
23
27
|
height: ARROW_HEIGHT_WITH_WHITE_SPACE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/FloatingArrow/DefaultIcon.tsx"],"sourcesContent":["import * as React from 'react';\n\n/**\n * Примечание 1.\n *\n * В компоненте, SVG элемент `<path />` представляет собой стрелку с платформой в виде прямоугольника в 1px. Платформа\n * служит для исправления проблемы с белой полоской между контентом и стрелкой, которая зачастую проявляется при\n * изменении масштаба страницы.\n *\n * Чтобы исправление сработало нужно:\n * 1. Прибавить высоту платформы к `height` и `viewBox` SVG контейнера.\n * 2. Сместить положение SVG контейнера на высоту платформы – сделано в CSS через `translateY(1px)`.\n *\n * https://github.com/VKCOM/VKUI/issues/2123\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/FloatingArrow/DefaultIcon.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport const DEFAULT_ARROW_WIDTH = 20;\nexport const DEFAULT_ARROW_HEIGHT = 8;\nexport const DEFAULT_ARROW_PADDING = 10;\n\nconst PLATFORM_HEIGHT = 1;\nconst ARROW_HEIGHT_WITH_WHITE_SPACE = DEFAULT_ARROW_HEIGHT + PLATFORM_HEIGHT;\n\n/**\n * Стрелка для всплывающих окон.\n *\n * Примечание 1.\n *\n * В компоненте, SVG элемент `<path />` представляет собой стрелку с платформой в виде прямоугольника в 1px. Платформа\n * служит для исправления проблемы с белой полоской между контентом и стрелкой, которая зачастую проявляется при\n * изменении масштаба страницы.\n *\n * Чтобы исправление сработало нужно:\n * 1. Прибавить высоту платформы к `height` и `viewBox` SVG контейнера.\n * 2. Сместить положение SVG контейнера на высоту платформы – сделано в CSS через `translateY(1px)`.\n *\n * https://github.com/VKCOM/VKUI/issues/2123\n *\n * @since 7.0.0\n */\nexport const DefaultIcon = (props: React.SVGAttributes<SVGSVGElement>): React.ReactNode => {\n return (\n <svg\n width={DEFAULT_ARROW_WIDTH}\n height={ARROW_HEIGHT_WITH_WHITE_SPACE}\n viewBox={`0 0 ${DEFAULT_ARROW_WIDTH} ${ARROW_HEIGHT_WITH_WHITE_SPACE}`}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M10 0c3 0 6 8 10 8v1H0V8c3.975 0 7-8 10-8Z\" fill=\"currentColor\" />\n </svg>\n );\n};\n"],"names":["React","DEFAULT_ARROW_WIDTH","DEFAULT_ARROW_HEIGHT","DEFAULT_ARROW_PADDING","PLATFORM_HEIGHT","ARROW_HEIGHT_WITH_WHITE_SPACE","DefaultIcon","props","svg","width","height","viewBox","xmlns","path","d","fill"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAE/B,OAAO,MAAMC,sBAAsB,GAAG;AACtC,OAAO,MAAMC,uBAAuB,EAAE;AACtC,OAAO,MAAMC,wBAAwB,GAAG;AAExC,MAAMC,kBAAkB;AACxB,MAAMC,gCAAgCH,uBAAuBE;AAE7D;;;;;;;;;;;;;;;;CAgBC,GACD,OAAO,MAAME,cAAc,CAACC;IAC1B,qBACE,KAACC;QACCC,OAAOR;QACPS,QAAQL;QACRM,SAAS,CAAC,IAAI,EAAEV,oBAAoB,CAAC,EAAEI,+BAA+B;QACtEO,OAAM;QACL,GAAGL,KAAK;kBAET,cAAA,KAACM;YAAKC,GAAE;YAA6CC,MAAK;;;AAGhE,EAAE"}
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { classNames } from "@vkontakte/vkjs";
|
|
4
|
+
import { RootComponent } from "../RootComponent/RootComponent.js";
|
|
4
5
|
import { DefaultIcon } from "./DefaultIcon.js";
|
|
5
6
|
import styles from "./FloatingArrow.module.css";
|
|
6
|
-
const placementClassNames = {
|
|
7
|
+
export const placementClassNames = {
|
|
7
8
|
right: styles.placementRight,
|
|
8
9
|
bottom: styles.placementBottom,
|
|
9
10
|
left: styles.placementLeft
|
|
10
11
|
};
|
|
11
12
|
/**
|
|
12
|
-
*
|
|
13
|
-
|
|
13
|
+
* Иконка-стрелка для всплывающих окон.
|
|
14
|
+
*
|
|
15
|
+
* @since 7.0.0
|
|
16
|
+
*/ export const FloatingArrow = ({ offset, isStaticOffset, coords, iconStyle, iconClassName, placement = 'bottom', Icon = DefaultIcon, ...restProps })=>{
|
|
14
17
|
const [arrowPlacement, arrowStyles] = getArrowPositionData(placement, coords, offset, isStaticOffset);
|
|
15
|
-
return /*#__PURE__*/ _jsx(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
className: classNames(styles.host, arrowPlacement && placementClassNames[arrowPlacement]),
|
|
18
|
+
return /*#__PURE__*/ _jsx(RootComponent, {
|
|
19
|
+
baseStyle: arrowStyles,
|
|
20
|
+
baseClassName: classNames(styles.host, arrowPlacement && placementClassNames[arrowPlacement]),
|
|
19
21
|
...restProps,
|
|
20
22
|
children: /*#__PURE__*/ _jsx(Icon, {
|
|
21
23
|
className: classNames(styles.in, iconClassName),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/FloatingArrow/FloatingArrow.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { Placement } from '../../lib/floating';\nimport type { HasDataAttribute, HTMLAttributesWithRootRef } from '../../types';\nimport { DefaultIcon } from './DefaultIcon';\nimport styles from './FloatingArrow.module.css';\n\nexport type Coords = {\n x?: number;\n y?: number;\n};\n\
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/FloatingArrow/FloatingArrow.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { Placement } from '../../lib/floating';\nimport type { HasDataAttribute, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { DefaultIcon } from './DefaultIcon';\nimport styles from './FloatingArrow.module.css';\n\nexport type Coords = {\n x?: number;\n y?: number;\n};\n\nexport const placementClassNames = {\n right: styles.placementRight,\n bottom: styles.placementBottom,\n left: styles.placementLeft,\n};\n\nexport interface FloatingArrowProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n HasDataAttribute {\n /**\n * Сдвиг стрелки относительно текущих координат.\n */\n offset?: number;\n /**\n * Включает абсолютное смещение по `offset`.\n */\n isStaticOffset?: boolean;\n coords?: Coords;\n placement?: Placement;\n iconStyle?: React.CSSProperties;\n iconClassName?: string;\n Icon?: React.ComponentType<React.SVGAttributes<SVGSVGElement>>;\n}\n\n/**\n * Иконка-стрелка для всплывающих окон.\n *\n * @since 7.0.0\n */\nexport const FloatingArrow = ({\n offset,\n isStaticOffset,\n coords,\n iconStyle,\n iconClassName,\n placement = 'bottom',\n Icon = DefaultIcon,\n ...restProps\n}: FloatingArrowProps): React.ReactNode => {\n const [arrowPlacement, arrowStyles] = getArrowPositionData(\n placement,\n coords,\n offset,\n isStaticOffset,\n );\n\n return (\n <RootComponent\n baseStyle={arrowStyles}\n baseClassName={classNames(styles.host, arrowPlacement && placementClassNames[arrowPlacement])}\n {...restProps}\n >\n <Icon className={classNames(styles.in, iconClassName)} style={iconStyle} />\n </RootComponent>\n );\n};\n\nfunction getArrowPositionData(\n placement: Placement,\n coords: Coords = { x: 0, y: 0 },\n offset = 0,\n isStaticOffset = false,\n): [undefined | 'right' | 'bottom' | 'left', React.CSSProperties] {\n const withOffset = (isVerticalPlacement: boolean) => {\n const parsedCoords = { x: coords.x || 0, y: coords.y || 0 };\n\n if (isVerticalPlacement) {\n return isStaticOffset ? offset : parsedCoords.y + offset;\n } else {\n return isStaticOffset ? offset : parsedCoords.x + offset;\n }\n };\n\n if (placement.startsWith('top')) {\n const xOffsetProp = getXOffsetProp(placement, isStaticOffset);\n return [\n 'bottom',\n {\n top: '100%',\n [xOffsetProp]: withOffset(false),\n },\n ];\n } else if (placement.startsWith('right')) {\n const yOffsetProp = getYOffsetProp(placement, isStaticOffset);\n return [\n 'left',\n {\n [yOffsetProp]: withOffset(true),\n left: 0,\n },\n ];\n } else if (placement.startsWith('bottom')) {\n const xOffsetProp = getXOffsetProp(placement, isStaticOffset);\n return [\n undefined,\n {\n bottom: '100%',\n [xOffsetProp]: withOffset(false),\n },\n ];\n } else {\n const yOffsetProp = getYOffsetProp(placement, isStaticOffset);\n return [\n 'right',\n {\n [yOffsetProp]: withOffset(true),\n right: 0,\n },\n ];\n }\n}\n\nfunction getXOffsetProp(placement: Placement, isStaticOffset: boolean) {\n return placement.endsWith('end') && isStaticOffset ? 'right' : 'left';\n}\n\nfunction getYOffsetProp(placement: Placement, isStaticOffset: boolean) {\n return placement.endsWith('end') && isStaticOffset ? 'bottom' : 'top';\n}\n"],"names":["React","classNames","RootComponent","DefaultIcon","styles","placementClassNames","right","placementRight","bottom","placementBottom","left","placementLeft","FloatingArrow","offset","isStaticOffset","coords","iconStyle","iconClassName","placement","Icon","restProps","arrowPlacement","arrowStyles","getArrowPositionData","baseStyle","baseClassName","host","className","in","style","x","y","withOffset","isVerticalPlacement","parsedCoords","startsWith","xOffsetProp","getXOffsetProp","top","yOffsetProp","getYOffsetProp","undefined","endsWith"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAG7C,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,WAAW,QAAQ,mBAAgB;AAC5C,OAAOC,YAAY,6BAA6B;AAOhD,OAAO,MAAMC,sBAAsB;IACjCC,OAAOF,OAAOG,cAAc;IAC5BC,QAAQJ,OAAOK,eAAe;IAC9BC,MAAMN,OAAOO,aAAa;AAC5B,EAAE;AAoBF;;;;CAIC,GACD,OAAO,MAAMC,gBAAgB,CAAC,EAC5BC,MAAM,EACNC,cAAc,EACdC,MAAM,EACNC,SAAS,EACTC,aAAa,EACbC,YAAY,QAAQ,EACpBC,OAAOhB,WAAW,EAClB,GAAGiB,WACgB;IACnB,MAAM,CAACC,gBAAgBC,YAAY,GAAGC,qBACpCL,WACAH,QACAF,QACAC;IAGF,qBACE,KAACZ;QACCsB,WAAWF;QACXG,eAAexB,WAAWG,OAAOsB,IAAI,EAAEL,kBAAkBhB,mBAAmB,CAACgB,eAAe;QAC3F,GAAGD,SAAS;kBAEb,cAAA,KAACD;YAAKQ,WAAW1B,WAAWG,OAAOwB,EAAE,EAAEX;YAAgBY,OAAOb;;;AAGpE,EAAE;AAEF,SAASO,qBACPL,SAAoB,EACpBH,SAAiB;IAAEe,GAAG;IAAGC,GAAG;AAAE,CAAC,EAC/BlB,SAAS,CAAC,EACVC,iBAAiB,KAAK;IAEtB,MAAMkB,aAAa,CAACC;QAClB,MAAMC,eAAe;YAAEJ,GAAGf,OAAOe,CAAC,IAAI;YAAGC,GAAGhB,OAAOgB,CAAC,IAAI;QAAE;QAE1D,IAAIE,qBAAqB;YACvB,OAAOnB,iBAAiBD,SAASqB,aAAaH,CAAC,GAAGlB;QACpD,OAAO;YACL,OAAOC,iBAAiBD,SAASqB,aAAaJ,CAAC,GAAGjB;QACpD;IACF;IAEA,IAAIK,UAAUiB,UAAU,CAAC,QAAQ;QAC/B,MAAMC,cAAcC,eAAenB,WAAWJ;QAC9C,OAAO;YACL;YACA;gBACEwB,KAAK;gBACL,CAACF,YAAY,EAAEJ,WAAW;YAC5B;SACD;IACH,OAAO,IAAId,UAAUiB,UAAU,CAAC,UAAU;QACxC,MAAMI,cAAcC,eAAetB,WAAWJ;QAC9C,OAAO;YACL;YACA;gBACE,CAACyB,YAAY,EAAEP,WAAW;gBAC1BtB,MAAM;YACR;SACD;IACH,OAAO,IAAIQ,UAAUiB,UAAU,CAAC,WAAW;QACzC,MAAMC,cAAcC,eAAenB,WAAWJ;QAC9C,OAAO;YACL2B;YACA;gBACEjC,QAAQ;gBACR,CAAC4B,YAAY,EAAEJ,WAAW;YAC5B;SACD;IACH,OAAO;QACL,MAAMO,cAAcC,eAAetB,WAAWJ;QAC9C,OAAO;YACL;YACA;gBACE,CAACyB,YAAY,EAAEP,WAAW;gBAC1B1B,OAAO;YACT;SACD;IACH;AACF;AAEA,SAAS+B,eAAenB,SAAoB,EAAEJ,cAAuB;IACnE,OAAOI,UAAUwB,QAAQ,CAAC,UAAU5B,iBAAiB,UAAU;AACjE;AAEA,SAAS0B,eAAetB,SAAoB,EAAEJ,cAAuB;IACnE,OAAOI,UAAUwB,QAAQ,CAAC,UAAU5B,iBAAiB,WAAW;AAClE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { classNames, hasReactNode } from "@vkontakte/vkjs";
|
|
4
|
+
import { mergeStyle } from "../../helpers/mergeStyle.js";
|
|
4
5
|
import { Avatar } from "../Avatar/Avatar.js";
|
|
5
6
|
import { Tappable } from "../Tappable/Tappable.js";
|
|
6
7
|
import { Caption } from "../Typography/Caption/Caption.js";
|
|
@@ -15,6 +16,10 @@ const stylesSize = {
|
|
|
15
16
|
xl: styles.sizeXL,
|
|
16
17
|
auto: styles.sizeAuto
|
|
17
18
|
};
|
|
19
|
+
const textAlignClassNames = {
|
|
20
|
+
center: styles.textAlignCenter,
|
|
21
|
+
end: styles.textAlignEnd
|
|
22
|
+
};
|
|
18
23
|
const CellTypography = ({ size, children, ...restProps })=>{
|
|
19
24
|
return size === 's' ? /*#__PURE__*/ _jsx(Caption, {
|
|
20
25
|
...restProps,
|
|
@@ -28,17 +33,15 @@ const CellTypography = ({ size, children, ...restProps })=>{
|
|
|
28
33
|
* @see https://vkcom.github.io/VKUI/#/HorizontalCell
|
|
29
34
|
*/ export const HorizontalCell = ({ className, title, style, subtitle, size = 's', children = /*#__PURE__*/ _jsx(Avatar, {
|
|
30
35
|
size: 56
|
|
31
|
-
}), getRootRef, getRef, extraSubtitle, ...restProps })=>{
|
|
36
|
+
}), getRootRef, getRef, extraSubtitle, textAlign = size === 's' ? 'center' : 'start', noPadding = false, ...restProps })=>{
|
|
32
37
|
const hasTypography = hasReactNode(title) || hasReactNode(subtitle) || hasReactNode(extraSubtitle);
|
|
38
|
+
const customProperties = typeof size === 'number' ? {
|
|
39
|
+
[CUSTOM_CSS_TOKEN_FOR_CELL_WIDTH]: `${size}px`
|
|
40
|
+
} : undefined;
|
|
33
41
|
return /*#__PURE__*/ _jsx("div", {
|
|
34
42
|
ref: getRootRef,
|
|
35
|
-
style:
|
|
36
|
-
|
|
37
|
-
[CUSTOM_CSS_TOKEN_FOR_CELL_WIDTH]: `${size}px`
|
|
38
|
-
},
|
|
39
|
-
...style
|
|
40
|
-
},
|
|
41
|
-
className: classNames(styles.host, typeof size === 'string' && stylesSize[size], size !== 'auto' && styles.sized, className),
|
|
43
|
+
style: mergeStyle(customProperties, style),
|
|
44
|
+
className: classNames(styles.host, typeof size === 'string' && stylesSize[size], size !== 'auto' && styles.sized, typeof size === 'number' && styles.customSize, noPadding && styles.noPadding, className),
|
|
42
45
|
children: /*#__PURE__*/ _jsxs(Tappable, {
|
|
43
46
|
className: styles.body,
|
|
44
47
|
getRootRef: getRef,
|
|
@@ -49,7 +52,7 @@ const CellTypography = ({ size, children, ...restProps })=>{
|
|
|
49
52
|
children: children
|
|
50
53
|
}),
|
|
51
54
|
hasTypography && /*#__PURE__*/ _jsxs("div", {
|
|
52
|
-
className: styles.content,
|
|
55
|
+
className: classNames(styles.content, textAlign !== 'start' && textAlignClassNames[textAlign]),
|
|
53
56
|
children: [
|
|
54
57
|
hasReactNode(title) && /*#__PURE__*/ _jsx(CellTypography, {
|
|
55
58
|
size: size,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/HorizontalCell/HorizontalCell.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport type {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/HorizontalCell/HorizontalCell.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport type {\n CSSCustomProperties,\n HasRef,\n HasRootRef,\n HTMLAttributesWithRootRef,\n LiteralUnion,\n} from '../../types';\nimport { Avatar } from '../Avatar/Avatar';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport styles from './HorizontalCell.module.css';\n\nexport const CUSTOM_CSS_TOKEN_FOR_CELL_WIDTH = '--vkui_internal--cell_width';\n\nconst stylesSize = {\n s: styles.sizeS,\n m: styles.sizeM,\n l: styles.sizeL,\n xl: styles.sizeXL,\n auto: styles.sizeAuto,\n};\n\nconst textAlignClassNames = {\n center: styles.textAlignCenter,\n end: styles.textAlignEnd,\n};\n\ntype HorizontalCellSizes = 's' | 'm' | 'l' | 'xl' | 'auto';\n\ninterface CellTypographyProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n size: HorizontalCellProps['size'];\n}\n\nconst CellTypography = ({ size, children, ...restProps }: CellTypographyProps) => {\n return size === 's' ? (\n <Caption {...restProps}>{children}</Caption>\n ) : (\n <Subhead {...restProps}>{children}</Subhead>\n );\n};\n\nexport interface HorizontalCellProps\n extends Omit<TappableProps, 'size' | 'getRootRef' | 'title' | 'borderRadiusMode'>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * Ширина компонента\n *\n * Значения `'s' | 'm' | 'l' | 'xl'` определяются дизайн-системой.\n * Значение `auto` позволяет задать динамическую ширину, определяемую контентом.\n * Пользовательскую ширину можно задать через числовое значение.\n */\n size?: LiteralUnion<HorizontalCellSizes, number>;\n /**\n * Заголовок\n */\n title?: React.ReactNode;\n /**\n * Дополнительная строка текста под `children`.\n */\n subtitle?: React.ReactNode;\n /**\n * Дополнительная строка текста под `children` и `subtitle`.\n */\n extraSubtitle?: React.ReactNode;\n /**\n * Задает выравнивание типографики. По умолчанию `center` для `size=s`, иначе `start`\n */\n textAlign?: 'start' | 'center' | 'end';\n /**\n * Отключает формирование отступов у крайних элементов\n *\n * Актуально для использования в многострочных списках\n */\n noPadding?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/HorizontalCell\n */\nexport const HorizontalCell = ({\n className,\n title,\n style,\n subtitle,\n size = 's',\n children = <Avatar size={56} />,\n getRootRef,\n getRef,\n extraSubtitle,\n textAlign = size === 's' ? 'center' : 'start',\n noPadding = false,\n ...restProps\n}: HorizontalCellProps): React.ReactNode => {\n const hasTypography =\n hasReactNode(title) || hasReactNode(subtitle) || hasReactNode(extraSubtitle);\n\n const customProperties: CSSCustomProperties | undefined =\n typeof size === 'number' ? { [CUSTOM_CSS_TOKEN_FOR_CELL_WIDTH]: `${size}px` } : undefined;\n\n return (\n <div\n ref={getRootRef}\n style={mergeStyle(customProperties, style)}\n className={classNames(\n styles.host,\n typeof size === 'string' && stylesSize[size],\n size !== 'auto' && styles.sized,\n typeof size === 'number' && styles.customSize,\n noPadding && styles.noPadding,\n className,\n )}\n >\n <Tappable className={styles.body} getRootRef={getRef} {...restProps}>\n {hasReactNode(children) && <div className={styles.image}>{children}</div>}\n {hasTypography && (\n <div\n className={classNames(\n styles.content,\n textAlign !== 'start' && textAlignClassNames[textAlign],\n )}\n >\n {hasReactNode(title) && <CellTypography size={size}>{title}</CellTypography>}\n {hasReactNode(subtitle) && <Footnote className={styles.subtitle}>{subtitle}</Footnote>}\n {hasReactNode(extraSubtitle) && (\n <Footnote className={styles.subtitle}>{extraSubtitle}</Footnote>\n )}\n </div>\n )}\n </Tappable>\n </div>\n );\n};\n"],"names":["React","classNames","hasReactNode","mergeStyle","Avatar","Tappable","Caption","Footnote","Subhead","styles","CUSTOM_CSS_TOKEN_FOR_CELL_WIDTH","stylesSize","s","sizeS","m","sizeM","l","sizeL","xl","sizeXL","auto","sizeAuto","textAlignClassNames","center","textAlignCenter","end","textAlignEnd","CellTypography","size","children","restProps","HorizontalCell","className","title","style","subtitle","getRootRef","getRef","extraSubtitle","textAlign","noPadding","hasTypography","customProperties","undefined","div","ref","host","sized","customSize","body","image","content"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,UAAU,QAAQ,8BAA2B;AAQtD,SAASC,MAAM,QAAQ,sBAAmB;AAC1C,SAASC,QAAQ,QAA4B,0BAAuB;AACpE,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,OAAO,QAAQ,mCAAgC;AACxD,OAAOC,YAAY,8BAA8B;AAEjD,OAAO,MAAMC,kCAAkC,8BAA8B;AAE7E,MAAMC,aAAa;IACjBC,GAAGH,OAAOI,KAAK;IACfC,GAAGL,OAAOM,KAAK;IACfC,GAAGP,OAAOQ,KAAK;IACfC,IAAIT,OAAOU,MAAM;IACjBC,MAAMX,OAAOY,QAAQ;AACvB;AAEA,MAAMC,sBAAsB;IAC1BC,QAAQd,OAAOe,eAAe;IAC9BC,KAAKhB,OAAOiB,YAAY;AAC1B;AAQA,MAAMC,iBAAiB,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAE,GAAGC,WAAgC;IAC3E,OAAOF,SAAS,oBACd,KAACtB;QAAS,GAAGwB,SAAS;kBAAGD;uBAEzB,KAACrB;QAAS,GAAGsB,SAAS;kBAAGD;;AAE7B;AAsCA;;CAEC,GACD,OAAO,MAAME,iBAAiB,CAAC,EAC7BC,SAAS,EACTC,KAAK,EACLC,KAAK,EACLC,QAAQ,EACRP,OAAO,GAAG,EACVC,yBAAW,KAACzB;IAAOwB,MAAM;EAAM,EAC/BQ,UAAU,EACVC,MAAM,EACNC,aAAa,EACbC,YAAYX,SAAS,MAAM,WAAW,OAAO,EAC7CY,YAAY,KAAK,EACjB,GAAGV,WACiB;IACpB,MAAMW,gBACJvC,aAAa+B,UAAU/B,aAAaiC,aAAajC,aAAaoC;IAEhE,MAAMI,mBACJ,OAAOd,SAAS,WAAW;QAAE,CAAClB,gCAAgC,EAAE,GAAGkB,KAAK,EAAE,CAAC;IAAC,IAAIe;IAElF,qBACE,KAACC;QACCC,KAAKT;QACLF,OAAO/B,WAAWuC,kBAAkBR;QACpCF,WAAW/B,WACTQ,OAAOqC,IAAI,EACX,OAAOlB,SAAS,YAAYjB,UAAU,CAACiB,KAAK,EAC5CA,SAAS,UAAUnB,OAAOsC,KAAK,EAC/B,OAAOnB,SAAS,YAAYnB,OAAOuC,UAAU,EAC7CR,aAAa/B,OAAO+B,SAAS,EAC7BR;kBAGF,cAAA,MAAC3B;YAAS2B,WAAWvB,OAAOwC,IAAI;YAAEb,YAAYC;YAAS,GAAGP,SAAS;;gBAChE5B,aAAa2B,2BAAa,KAACe;oBAAIZ,WAAWvB,OAAOyC,KAAK;8BAAGrB;;gBACzDY,+BACC,MAACG;oBACCZ,WAAW/B,WACTQ,OAAO0C,OAAO,EACdZ,cAAc,WAAWjB,mBAAmB,CAACiB,UAAU;;wBAGxDrC,aAAa+B,wBAAU,KAACN;4BAAeC,MAAMA;sCAAOK;;wBACpD/B,aAAaiC,2BAAa,KAAC5B;4BAASyB,WAAWvB,OAAO0B,QAAQ;sCAAGA;;wBACjEjC,aAAaoC,gCACZ,KAAC/B;4BAASyB,WAAWvB,OAAO0B,QAAQ;sCAAGG;;;;;;;AAOrD,EAAE"}
|
|
@@ -36,13 +36,13 @@
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
.sized {
|
|
39
|
-
--vkui_internal--side_cell_width: calc(
|
|
40
|
-
var(--vkui_internal--cell_width) + var(--vkui_internal--side_cell_gap)
|
|
41
|
-
);
|
|
42
|
-
|
|
43
39
|
max-inline-size: var(--vkui_internal--cell_width);
|
|
44
40
|
}
|
|
45
41
|
|
|
42
|
+
.customSize .body {
|
|
43
|
+
inline-size: var(--vkui_internal--cell_width);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
46
|
.sizeS {
|
|
47
47
|
--vkui_internal--side_cell_gap: calc(
|
|
48
48
|
var(--vkui--size_base_padding_horizontal--regular) - var(--vkui--spacing_size_m)
|
|
@@ -50,6 +50,10 @@
|
|
|
50
50
|
--vkui_internal--cell_width: 72px;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
.noPadding {
|
|
54
|
+
--vkui_internal--side_cell_gap: 0px;
|
|
55
|
+
}
|
|
56
|
+
|
|
53
57
|
.image {
|
|
54
58
|
padding-block: 4px;
|
|
55
59
|
padding-inline: var(--vkui--spacing_size_s);
|
|
@@ -61,6 +65,14 @@
|
|
|
61
65
|
text-align: start;
|
|
62
66
|
}
|
|
63
67
|
|
|
68
|
+
.textAlignCenter {
|
|
69
|
+
text-align: center;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.textAlignEnd {
|
|
73
|
+
text-align: end;
|
|
74
|
+
}
|
|
75
|
+
|
|
64
76
|
.sizeS .image {
|
|
65
77
|
padding-block: 4px;
|
|
66
78
|
padding-inline: var(--vkui--spacing_size_m);
|
|
@@ -69,7 +81,6 @@
|
|
|
69
81
|
.sizeS .content {
|
|
70
82
|
padding-block: 2px 8px;
|
|
71
83
|
padding-inline: 4px;
|
|
72
|
-
text-align: center;
|
|
73
84
|
}
|
|
74
85
|
|
|
75
86
|
.sizeM {
|
|
@@ -96,7 +107,13 @@
|
|
|
96
107
|
|
|
97
108
|
.sized:first-child,
|
|
98
109
|
.sized:last-child {
|
|
99
|
-
max-inline-size: var(--vkui_internal--
|
|
110
|
+
max-inline-size: calc(var(--vkui_internal--cell_width) + var(--vkui_internal--side_cell_gap));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.sized:first-child:last-child {
|
|
114
|
+
max-inline-size: calc(
|
|
115
|
+
var(--vkui_internal--cell_width) + (2 * (var(--vkui_internal--side_cell_gap)))
|
|
116
|
+
);
|
|
100
117
|
}
|
|
101
118
|
|
|
102
119
|
.sized:first-child .body,
|
|
@@ -15,7 +15,7 @@ const sizeYClassNames = {
|
|
|
15
15
|
const warn = warnOnce('IconButton');
|
|
16
16
|
/**
|
|
17
17
|
* @see https://vkcom.github.io/VKUI/#/IconButton
|
|
18
|
-
*/ export const IconButton = ({ label, children,
|
|
18
|
+
*/ export const IconButton = ({ label, children, ...restProps })=>{
|
|
19
19
|
const platform = usePlatform();
|
|
20
20
|
const { sizeY = 'none' } = useAdaptivity();
|
|
21
21
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -35,7 +35,7 @@ const warn = warnOnce('IconButton');
|
|
|
35
35
|
activeMode: "background",
|
|
36
36
|
Component: restProps.href ? 'a' : 'button',
|
|
37
37
|
...restProps,
|
|
38
|
-
|
|
38
|
+
baseClassName: classNames(styles.host, sizeY !== 'regular' && sizeYClassNames[sizeY], platform === 'ios' && styles.ios),
|
|
39
39
|
children: [
|
|
40
40
|
label && /*#__PURE__*/ _jsx(VisuallyHidden, {
|
|
41
41
|
children: label
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { hasAccessibleName } from '../../lib/accessibility';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './IconButton.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n} as const;\n\nexport interface IconButtonProps extends TappableProps {\n /**\n * Текст кнопки-иконки. Делает ее доступной для ассистивных технологий\n */\n label?: string;\n}\n\nconst warn = warnOnce('IconButton');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/IconButton\n */\nexport const IconButton = ({
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { hasAccessibleName } from '../../lib/accessibility';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './IconButton.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n} as const;\n\nexport interface IconButtonProps extends TappableProps {\n /**\n * Текст кнопки-иконки. Делает ее доступной для ассистивных технологий\n */\n label?: string;\n}\n\nconst warn = warnOnce('IconButton');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/IconButton\n */\nexport const IconButton = ({ label, children, ...restProps }: IconButtonProps): React.ReactNode => {\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n\n if (process.env.NODE_ENV === 'development') {\n /* istanbul ignore next: проверка в dev mode, тест на hasAccessibleName() есть в lib/accessibility.test.tsx */\n const isAccessible = hasAccessibleName({\n children: [children, label],\n ...restProps,\n });\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y[restProps.href ? 'link-name' : 'button-name'], 'error');\n }\n }\n\n return (\n <Tappable\n activeEffectDelay={200}\n activeMode=\"background\"\n Component={restProps.href ? 'a' : 'button'}\n {...restProps}\n baseClassName={classNames(\n styles.host,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n platform === 'ios' && styles.ios,\n )}\n >\n {label && <VisuallyHidden>{label}</VisuallyHidden>}\n {children}\n </Tappable>\n );\n};\n"],"names":["classNames","useAdaptivity","usePlatform","hasAccessibleName","COMMON_WARNINGS","warnOnce","Tappable","VisuallyHidden","styles","sizeYClassNames","none","sizeYNone","compact","sizeYCompact","warn","IconButton","label","children","restProps","platform","sizeY","process","env","NODE_ENV","isAccessible","a11y","href","activeEffectDelay","activeMode","Component","baseClassName","host","ios"],"mappings":"AAAA;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,iBAAiB,QAAQ,6BAA0B;AAC5D,SAASC,eAAe,EAAEC,QAAQ,QAAQ,wBAAqB;AAC/D,SAASC,QAAQ,QAA4B,0BAAuB;AACpE,SAASC,cAAc,QAAQ,sCAAmC;AAClE,OAAOC,YAAY,0BAA0B;AAE7C,MAAMC,kBAAkB;IACtBC,MAAMF,OAAOG,SAAS;IACtBC,SAASJ,OAAOK,YAAY;AAC9B;AASA,MAAMC,OAAOT,SAAS;AAEtB;;CAEC,GACD,OAAO,MAAMU,aAAa,CAAC,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGC,WAA4B;IAC3E,MAAMC,WAAWjB;IACjB,MAAM,EAAEkB,QAAQ,MAAM,EAAE,GAAGnB;IAE3B,IAAIoB,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,4GAA4G,GAC5G,MAAMC,eAAerB,kBAAkB;YACrCc,UAAU;gBAACA;gBAAUD;aAAM;YAC3B,GAAGE,SAAS;QACd;QAEA,IAAI,CAACM,cAAc;YACjBV,KAAKV,gBAAgBqB,IAAI,CAACP,UAAUQ,IAAI,GAAG,cAAc,cAAc,EAAE;QAC3E;IACF;IAEA,qBACE,MAACpB;QACCqB,mBAAmB;QACnBC,YAAW;QACXC,WAAWX,UAAUQ,IAAI,GAAG,MAAM;QACjC,GAAGR,SAAS;QACbY,eAAe9B,WACbQ,OAAOuB,IAAI,EACXX,UAAU,aAAaX,eAAe,CAACW,MAAM,EAC7CD,aAAa,SAASX,OAAOwB,GAAG;;YAGjChB,uBAAS,KAACT;0BAAgBS;;YAC1BC;;;AAGP,EAAE"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { classNames } from "@vkontakte/vkjs";
|
|
5
|
+
import { mergeStyle } from "../../helpers/mergeStyle.js";
|
|
5
6
|
import { ImageBase } from "../ImageBase/ImageBase.js";
|
|
6
7
|
import { ImageBadge } from "./ImageBadge/ImageBadge.js";
|
|
7
8
|
import styles from "./Image.module.css";
|
|
@@ -88,10 +89,7 @@ const getBorderRadiusBySizeInPx = (size, borderRadius)=>{
|
|
|
88
89
|
...restProps,
|
|
89
90
|
objectFit: objectFit,
|
|
90
91
|
size: size,
|
|
91
|
-
style:
|
|
92
|
-
...borderStyles,
|
|
93
|
-
...style
|
|
94
|
-
},
|
|
92
|
+
style: mergeStyle(borderStyles, style),
|
|
95
93
|
className: classNames(className, styles.host, borderStartStartRadius && styles.borderStartStartRadius, borderStartEndRadius && styles.borderStartEndRadius, borderEndStartRadius && styles.borderEndStartRadius, borderEndEndRadius && styles.borderEndEndRadius)
|
|
96
94
|
});
|
|
97
95
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Image/Image.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { ImageBase, type ImageBaseOverlayProps, type ImageBaseProps } from '../ImageBase/ImageBase';\nimport { ImageBadge, type ImageBadgeProps } from './ImageBadge/ImageBadge';\nimport styles from './Image.module.css';\n\nexport type { ImageBadgeProps, ImageBaseOverlayProps as ImageOverlayProps };\n\nconst IMAGE_DEFAULT_SIZE = 48;\n\nexport interface ImageProps extends Omit<ImageBaseProps, 'badge'> {\n /**\n * Размер закругления.\n */\n borderRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между сторонами начала блока и строки\n */\n borderStartStartRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между стороной начала блока и стороной конца строки\n */\n borderStartEndRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между стороной конца блока и стороной начала строки\n */\n borderEndStartRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между сторонами конца блока и строки\n */\n borderEndEndRadius?: 's' | 'l' | 'm';\n}\n\nconst getBorderRadiusBySize = (\n size: Exclude<ImageBaseProps['size'], undefined>,\n borderRadius: Exclude<ImageProps['borderRadius'], undefined>,\n) => {\n switch (borderRadius) {\n case 's': {\n if (size <= 32) {\n return 2;\n }\n if (size <= 56) {\n return 3;\n }\n return 4;\n }\n case 'm': {\n if (size <= 32) {\n return 3;\n }\n if (size <= 48) {\n return 4;\n }\n if (size <= 72) {\n return 6;\n }\n if (size <= 80) {\n return 8;\n }\n return 10;\n }\n case 'l': {\n if (size <= 16) {\n return 4;\n }\n if (size <= 20) {\n return 5;\n }\n if (size <= 32) {\n return 6;\n }\n if (size <= 40) {\n return 8;\n }\n if (size <= 48) {\n return 10;\n }\n if (size <= 56) {\n return 12;\n }\n if (size <= 64) {\n return 14;\n }\n return 16;\n }\n }\n};\n\nconst getBorderRadiusBySizeInPx = (\n size: Exclude<ImageBaseProps['size'], undefined>,\n borderRadius: ImageProps['borderRadius'],\n) => {\n if (!borderRadius) {\n return undefined;\n }\n\n return `${getBorderRadiusBySize(size, borderRadius)}px`;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Image\n */\nexport const Image: React.FC<ImageProps> & {\n Badge: typeof ImageBadge;\n Overlay: typeof ImageBase.Overlay;\n} = ({\n size = IMAGE_DEFAULT_SIZE,\n borderRadius = 'm',\n borderStartStartRadius,\n borderStartEndRadius,\n borderEndStartRadius,\n borderEndEndRadius,\n style,\n className,\n objectFit = 'cover',\n ...restProps\n}: ImageProps) => {\n const borderStyles = React.useMemo(\n () => ({\n '--vkui_internal--Image_border_radius': getBorderRadiusBySizeInPx(size, borderRadius),\n '--vkui_internal--Image_border_start_start_radius': getBorderRadiusBySizeInPx(\n size,\n borderStartStartRadius,\n ),\n '--vkui_internal--Image_border_start_end_radius': getBorderRadiusBySizeInPx(\n size,\n borderStartEndRadius,\n ),\n '--vkui_internal--Image_border_end_start_radius': getBorderRadiusBySizeInPx(\n size,\n borderEndStartRadius,\n ),\n '--vkui_internal--Image_border_end_end_radius': getBorderRadiusBySizeInPx(\n size,\n borderEndEndRadius,\n ),\n }),\n [\n borderRadius,\n borderStartStartRadius,\n borderStartEndRadius,\n borderEndStartRadius,\n borderEndEndRadius,\n size,\n ],\n );\n\n return (\n <ImageBase\n {...restProps}\n objectFit={objectFit}\n size={size}\n style={
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Image/Image.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { type CSSCustomProperties } from '../../types';\nimport { ImageBase, type ImageBaseOverlayProps, type ImageBaseProps } from '../ImageBase/ImageBase';\nimport { ImageBadge, type ImageBadgeProps } from './ImageBadge/ImageBadge';\nimport styles from './Image.module.css';\n\nexport type { ImageBadgeProps, ImageBaseOverlayProps as ImageOverlayProps };\n\nconst IMAGE_DEFAULT_SIZE = 48;\n\nexport interface ImageProps extends Omit<ImageBaseProps, 'badge'> {\n /**\n * Размер закругления.\n */\n borderRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между сторонами начала блока и строки\n */\n borderStartStartRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между стороной начала блока и стороной конца строки\n */\n borderStartEndRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между стороной конца блока и стороной начала строки\n */\n borderEndStartRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между сторонами конца блока и строки\n */\n borderEndEndRadius?: 's' | 'l' | 'm';\n}\n\nconst getBorderRadiusBySize = (\n size: Exclude<ImageBaseProps['size'], undefined>,\n borderRadius: Exclude<ImageProps['borderRadius'], undefined>,\n) => {\n switch (borderRadius) {\n case 's': {\n if (size <= 32) {\n return 2;\n }\n if (size <= 56) {\n return 3;\n }\n return 4;\n }\n case 'm': {\n if (size <= 32) {\n return 3;\n }\n if (size <= 48) {\n return 4;\n }\n if (size <= 72) {\n return 6;\n }\n if (size <= 80) {\n return 8;\n }\n return 10;\n }\n case 'l': {\n if (size <= 16) {\n return 4;\n }\n if (size <= 20) {\n return 5;\n }\n if (size <= 32) {\n return 6;\n }\n if (size <= 40) {\n return 8;\n }\n if (size <= 48) {\n return 10;\n }\n if (size <= 56) {\n return 12;\n }\n if (size <= 64) {\n return 14;\n }\n return 16;\n }\n }\n};\n\nconst getBorderRadiusBySizeInPx = (\n size: Exclude<ImageBaseProps['size'], undefined>,\n borderRadius: ImageProps['borderRadius'],\n) => {\n if (!borderRadius) {\n return undefined;\n }\n\n return `${getBorderRadiusBySize(size, borderRadius)}px`;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Image\n */\nexport const Image: React.FC<ImageProps> & {\n Badge: typeof ImageBadge;\n Overlay: typeof ImageBase.Overlay;\n} = ({\n size = IMAGE_DEFAULT_SIZE,\n borderRadius = 'm',\n borderStartStartRadius,\n borderStartEndRadius,\n borderEndStartRadius,\n borderEndEndRadius,\n style,\n className,\n objectFit = 'cover',\n ...restProps\n}: ImageProps) => {\n const borderStyles: CSSCustomProperties<string | undefined> = React.useMemo(\n () => ({\n '--vkui_internal--Image_border_radius': getBorderRadiusBySizeInPx(size, borderRadius),\n '--vkui_internal--Image_border_start_start_radius': getBorderRadiusBySizeInPx(\n size,\n borderStartStartRadius,\n ),\n '--vkui_internal--Image_border_start_end_radius': getBorderRadiusBySizeInPx(\n size,\n borderStartEndRadius,\n ),\n '--vkui_internal--Image_border_end_start_radius': getBorderRadiusBySizeInPx(\n size,\n borderEndStartRadius,\n ),\n '--vkui_internal--Image_border_end_end_radius': getBorderRadiusBySizeInPx(\n size,\n borderEndEndRadius,\n ),\n }),\n [\n borderRadius,\n borderStartStartRadius,\n borderStartEndRadius,\n borderEndStartRadius,\n borderEndEndRadius,\n size,\n ],\n );\n\n return (\n <ImageBase\n {...restProps}\n objectFit={objectFit}\n size={size}\n style={mergeStyle(borderStyles, style)}\n className={classNames(\n className,\n styles.host,\n borderStartStartRadius && styles.borderStartStartRadius,\n borderStartEndRadius && styles.borderStartEndRadius,\n borderEndStartRadius && styles.borderEndStartRadius,\n borderEndEndRadius && styles.borderEndEndRadius,\n )}\n />\n );\n};\n\nImage.displayName = 'Image';\n\nImage.Badge = ImageBadge;\nImage.Badge.displayName = 'Image.Badge';\n\nImage.Overlay = ImageBase.Overlay;\nImage.Overlay.displayName = 'Image.Overlay';\n"],"names":["React","classNames","mergeStyle","ImageBase","ImageBadge","styles","IMAGE_DEFAULT_SIZE","getBorderRadiusBySize","size","borderRadius","getBorderRadiusBySizeInPx","undefined","Image","borderStartStartRadius","borderStartEndRadius","borderEndStartRadius","borderEndEndRadius","style","className","objectFit","restProps","borderStyles","useMemo","host","displayName","Badge","Overlay"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,UAAU,QAAQ,8BAA2B;AAEtD,SAASC,SAAS,QAAyD,4BAAyB;AACpG,SAASC,UAAU,QAA8B,6BAA0B;AAC3E,OAAOC,YAAY,qBAAqB;AAIxC,MAAMC,qBAAqB;AAyB3B,MAAMC,wBAAwB,CAC5BC,MACAC;IAEA,OAAQA;QACN,KAAK;YAAK;gBACR,IAAID,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,OAAO;YACT;QACA,KAAK;YAAK;gBACR,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,OAAO;YACT;QACA,KAAK;YAAK;gBACR,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,OAAO;YACT;IACF;AACF;AAEA,MAAME,4BAA4B,CAChCF,MACAC;IAEA,IAAI,CAACA,cAAc;QACjB,OAAOE;IACT;IAEA,OAAO,GAAGJ,sBAAsBC,MAAMC,cAAc,EAAE,CAAC;AACzD;AAEA;;CAEC,GACD,OAAO,MAAMG,QAGT,CAAC,EACHJ,OAAOF,kBAAkB,EACzBG,eAAe,GAAG,EAClBI,sBAAsB,EACtBC,oBAAoB,EACpBC,oBAAoB,EACpBC,kBAAkB,EAClBC,KAAK,EACLC,SAAS,EACTC,YAAY,OAAO,EACnB,GAAGC,WACQ;IACX,MAAMC,eAAwDrB,MAAMsB,OAAO,CACzE,IAAO,CAAA;YACL,wCAAwCZ,0BAA0BF,MAAMC;YACxE,oDAAoDC,0BAClDF,MACAK;YAEF,kDAAkDH,0BAChDF,MACAM;YAEF,kDAAkDJ,0BAChDF,MACAO;YAEF,gDAAgDL,0BAC9CF,MACAQ;QAEJ,CAAA,GACA;QACEP;QACAI;QACAC;QACAC;QACAC;QACAR;KACD;IAGH,qBACE,KAACL;QACE,GAAGiB,SAAS;QACbD,WAAWA;QACXX,MAAMA;QACNS,OAAOf,WAAWmB,cAAcJ;QAChCC,WAAWjB,WACTiB,WACAb,OAAOkB,IAAI,EACXV,0BAA0BR,OAAOQ,sBAAsB,EACvDC,wBAAwBT,OAAOS,oBAAoB,EACnDC,wBAAwBV,OAAOU,oBAAoB,EACnDC,sBAAsBX,OAAOW,kBAAkB;;AAIvD,EAAE;AAEFJ,MAAMY,WAAW,GAAG;AAEpBZ,MAAMa,KAAK,GAAGrB;AACdQ,MAAMa,KAAK,CAACD,WAAW,GAAG;AAE1BZ,MAAMc,OAAO,GAAGvB,UAAUuB,OAAO;AACjCd,MAAMc,OAAO,CAACF,WAAW,GAAG"}
|
|
@@ -43,7 +43,7 @@ const sizeToNumber = (size)=>{
|
|
|
43
43
|
};
|
|
44
44
|
/**
|
|
45
45
|
* @see https://vkcom.github.io/VKUI/#/ImageBase
|
|
46
|
-
*/ export const ImageBase = ({ alt, crossOrigin, decoding, loading, referrerPolicy, sizes, src, srcSet, useMap, fetchPriority, getRef, size: sizeProp, width: widthImg, height: heightImg, widthSize, heightSize,
|
|
46
|
+
*/ export const ImageBase = ({ alt, crossOrigin, decoding, loading, referrerPolicy, sizes, src, srcSet, useMap, fetchPriority, getRef, size: sizeProp, width: widthImg, height: heightImg, widthSize, heightSize, noBorder = false, fallbackIcon: fallbackIconProp, children, onLoad, onError, withTransparentBackground, objectFit = 'cover', keepAspectRatio = false, ...restProps })=>{
|
|
47
47
|
const size = sizeProp ?? minOr([
|
|
48
48
|
sizeToNumber(widthSize),
|
|
49
49
|
sizeToNumber(heightSize)
|
|
@@ -97,10 +97,9 @@ const sizeToNumber = (size)=>{
|
|
|
97
97
|
size
|
|
98
98
|
},
|
|
99
99
|
children: /*#__PURE__*/ _jsxs(Clickable, {
|
|
100
|
-
|
|
100
|
+
baseStyle: {
|
|
101
101
|
width,
|
|
102
|
-
height
|
|
103
|
-
...style
|
|
102
|
+
height
|
|
104
103
|
},
|
|
105
104
|
baseClassName: classNames(styles.host, loaded && styles.loaded, withTransparentBackground && styles.transparentBackground),
|
|
106
105
|
...restProps,
|