// @flow
import { type BreakPoint } from '../../breakpoints';

export type StackedVariantKey = 'row' | 'column';
export type JustifyVariantKey =
  | 'start'
  | 'end'
  | 'center'
  | 'space-between'
  | 'space-around'
  | 'space-evenly';
export type StackedAlignVariantKey = 'start' | 'end' | 'center' | 'stretch';

export type StackedOptions = {|
  stacked?: StackedVariantKey,
  justify?: JustifyVariantKey,
  align?: StackedAlignVariantKey,
  wrap?: boolean,
|};

type ResponsiveStackedOptions = {|
  stacked: {
    [breakpoint: BreakPoint]: StackedVariantKey,
  },
  justify: {
    [breakpoint: BreakPoint]: JustifyVariantKey,
  },
  align: {
    [breakpoint: BreakPoint]: StackedAlignVariantKey,
  },
  wrap?: BreakPoint[],
|};

export type StackedProps = StackedOptions | ResponsiveStackedOptions;
