import { classNames } from '@vkontakte/vkjs'; import { warnOnce } from '../../../lib/warnOnce'; import type { HasChildren } from '../../../types'; import { RootComponent } from '../../RootComponent/RootComponent'; import type { RootComponentProps } from '../../RootComponent/RootComponent'; import styles from './FlexItem.module.css'; const flexClassNames = { grow: styles.flexGrow, shrink: styles.flexShrink, content: styles.flexContent, fixed: styles.flexFixed, }; const alignSelfClassNames = { start: styles.alignSelfStart, end: styles.alignSelfEnd, center: styles.alignSelfCenter, baseline: styles.alignSelfBaseline, stretch: styles.alignSelfStretch, }; export interface FlexItemProps extends Omit, 'baseClassName'>, HasChildren { /** * Для задания выравнивания, отлично от родительского, эквивалентно `align-self`. */ alignSelf?: 'start' | 'end' | 'center' | 'baseline' | 'stretch'; /** * Позволяет задать предопределенные значения свойства `flex`: * * - `grow` соответствует значению `1 0 auto` * - `shrink` соответствует значению `0 1 auto` * - `content` соответствует значению `1 1 auto` * - `fixed` соответствует значению `0 0 auto`. */ flex?: 'grow' | 'shrink' | 'content' | 'fixed'; /** * Изначальный размер элемента, эквивалентно `flex-basis`. */ flexBasis?: number | string; } const warn = warnOnce('Flex.Item'); export const FlexItem = ({ children, alignSelf, flex, flexBasis, ...rest }: FlexItemProps): React.ReactNode => { if (process.env.NODE_ENV === 'development') { warn('Компонент Flex.Item устарел, используйте компонент Flex в качестве альтернативы.'); } return ( {children} ); };