import type { ComponentProps } from "../../types/component-props";
import type {
RowElement,
SpacingScale,
JustifyContent,
AlignItems,
FlexWrap,
} from "../../types/layout-primitives";
/**
* Props for the Row component
*
* Row provides a flex container for column layouts with customizable gap,
* justify, align, and wrap properties. Always renders with the .col-row
* base class and adds variant utilities based on props.
*
* @example
* // Basic row with default settings
*
* Column 1
* Column 2
*
*
* @example
* // Custom gap and centering
*
* Centered content
*
*/
export interface RowProps
extends Partial,
Omit, "className"> {
/**
* Gap size between columns
* Maps to --spacing-* CSS custom properties
* @default undefined (uses .col-row default gap)
*/
gap?: SpacingScale;
/**
* Horizontal alignment of columns (justify-content)
* @default undefined (flex-start)
*/
justify?: JustifyContent;
/**
* Vertical alignment of columns (align-items)
* @default undefined (stretch)
*/
align?: AlignItems;
/**
* Flex wrap behavior
* @default "wrap"
*/
wrap?: FlexWrap;
/**
* @deprecated This prop will be removed in v5.0.0
*
* Use responsive column utility classes instead for better control across breakpoints.
*
* Migration path:
* - Before: `Column
`
* - After: `Column
`
*
* Responsive utilities provide more flexibility:
* - Mobile phones (< 480px): `.col-12` (stack full width)
* - Tablets (≥ 480px): `.col-sm-6` (half width)
* - Desktops (≥ 1024px): `.col-lg-4` (third width)
*
* @default false
* @example
* // Deprecated approach
*
* Column 1
* Column 2
*
*
* @example
* // Recommended approach with responsive utilities
*
* Column 1
* Column 2
*
*
* @example
* // Mix with Col component if needed
*
* Column
*
*/
alwaysProportional?: boolean;
/**
* Element type to render
* @default "div"
*/
as?: RowElement;
/**
* Additional CSS classes
*/
className?: string;
/**
* Child elements (typically Col components)
*/
children?: React.ReactNode;
}