import { HTMLAttributes, ReactNode } from 'react';
export type GridResponsiveBreakpoint = 'xxxl' | 'xxl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs';
export type GridRowGutter = number | Partial>;
export interface RowProps extends HTMLAttributes {
gutter?: GridRowGutter | Array;
align?: 'start' | 'center' | 'end' | 'stretch';
justify?: 'start' | 'center' | 'end' | 'space-around' | 'space-between';
wrap?: boolean;
}
export interface ColProps extends HTMLAttributes {
span?: number;
offset?: number;
order?: number;
push?: number;
pull?: number;
xs?: number | {
[key: string]: any;
};
sm?: number | {
[key: string]: any;
};
md?: number | {
[key: string]: any;
};
lg?: number | {
[key: string]: any;
};
xl?: number | {
[key: string]: any;
};
xxl?: number | {
[key: string]: any;
};
xxxl?: number | {
[key: string]: any;
};
flex?: FlexType;
}
export interface GridProps extends HTMLAttributes {
cols?: number | ResponsiveValue;
rowGap?: number | ResponsiveValue;
colGap?: number | ResponsiveValue;
collapsed?: boolean;
collapsedRows?: number;
}
export interface GridItemProps extends Omit, 'children'> {
span?: number | ResponsiveValue;
offset?: number | ResponsiveValue;
suffix?: boolean;
__index__?: number;
children?: ReactNode | ((info: {
overflow: boolean;
}) => ReactNode);
}
export interface ResponsiveValue {
xxxl?: number;
xxl?: number;
xl?: number;
lg?: number;
md?: number;
sm?: number;
xs?: number;
}
export type FlexType = string | number | 'auto' | 'none';