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; }