import React, { HTMLAttributes } from "react"; export interface RowProps { cols?: 'auto' | 1 | 2 | 3 | 4 | 5 | 6; inline?: boolean; gap?: 0 | 1 | 2 | 3 | 4 | 5; direction?: 'row' | 'row-reverse'; grow?: boolean; shrink?: boolean; spaceX?: 'default' | 0 | 1 | 2 | 3 | 4 | 5 ; spaceY?: 'default' | 0 | 1 | 2 | 3 | 4 | 5 ; wrap?: 'wrap' | 'wrap-reverse' | 'nowrap'; justifyContent?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'; alignItems?: 'start' | 'end' | 'center' | 'baseline' | 'stretch'; alignContent?: 'start' | 'end' | 'center' | 'between' | 'stretch' | 'around'; alignSelf?: 'start' | 'end' | 'center' | 'baseline' | 'stretch'; } const Row: React.FC> = ({ className, children, cols, inline, direction, gap, grow, shrink, wrap, alignContent, alignItems, alignSelf, justifyContent, spaceX, spaceY, ...props }) => { const classes = [ 'row', cols && `row-cols-${cols}`, inline && 'd-inline-flex', direction && `flex-${direction}`, grow !== undefined && grow ? 'flex-grow-1' : 'flex-grow-0' , shrink !== undefined && shrink ? 'flex-shrink-1' : 'flex-shrink-0' , justifyContent && `justify-content-${justifyContent}`, alignContent && `align-content-${alignContent}`, alignItems && `align-items-${alignItems}`, alignSelf && `align-self-${alignSelf}`, wrap && `flex-${wrap}`, spaceX && spaceX === 'default' ? 'space-x' : `space-x-${spaceX}`, spaceY && spaceY === 'default' ? 'space-y' : `space-y-${spaceY}`, ].filter(Boolean).join(' '); return (
{children}
) } export default Row;