/* TypeScript file generated from Grid.res by genType. */
/* eslint-disable import/first */


import * as React from 'react';

// tslint:disable-next-line:no-var-requires
const GridBS = require('./Grid.bs');

// tslint:disable-next-line:interface-over-type-literal
export type tFixed = 
    { tag: "Row"; value: [number, string] }
  | { tag: "Column"; value: [number, string] };

// tslint:disable-next-line:interface-over-type-literal
export type Props = {
  readonly children: React.ReactNode; 
  readonly h?: number; 
  readonly w?: number; 
  readonly x?: number; 
  readonly y?: number
};

export const Item_make: React.ComponentType<{
  readonly children: React.ReactNode; 
  readonly h?: number; 
  readonly w?: number; 
  readonly x?: number; 
  readonly y?: number
}> = GridBS.Item.make;

// tslint:disable-next-line:interface-over-type-literal
export type make_Props = {
  readonly children: React.ReactNode; 
  readonly columns?: number; 
  readonly fixed?: tFixed[]; 
  readonly gap?: string; 
  readonly rows?: number
};

export const make: React.ComponentType<{
  readonly children: React.ReactNode; 
  readonly columns?: number; 
  readonly fixed?: tFixed[]; 
  readonly gap?: string; 
  readonly rows?: number
}> = function Grid(Arg1: any) {
  const $props = {children:Arg1.children, columns:Arg1.columns, fixed:(Arg1.fixed == null ? undefined : Arg1.fixed.map(function _element(ArrayItem: any) { return ArrayItem.tag==="Row"
    ? {TAG: 0, _0:ArrayItem.value[0], _1:ArrayItem.value[1]} as any
    : {TAG: 1, _0:ArrayItem.value[0], _1:ArrayItem.value[1]} as any})), gap:Arg1.gap, rows:Arg1.rows};
  const result = React.createElement(GridBS.make, $props);
  return result
};

export const $$default: { readonly Container: React.ComponentType<{
  readonly children: JSX.Element; 
  readonly columns?: number; 
  readonly fixed?: tFixed[]; 
  readonly gap?: string; 
  readonly rows?: number
}>; readonly Item: React.ComponentType<{
  readonly children: JSX.Element; 
  readonly h?: number; 
  readonly w?: number; 
  readonly x?: number; 
  readonly y?: number
}> } = {Container:function (Arg1: any) {
  const $props = {children:Arg1.children, columns:Arg1.columns, fixed:(Arg1.fixed == null ? undefined : Arg1.fixed.map(function _element(ArrayItem: any) { return ArrayItem.tag==="Row"
    ? {TAG: 0, _0:ArrayItem.value[0], _1:ArrayItem.value[1]} as any
    : {TAG: 1, _0:ArrayItem.value[0], _1:ArrayItem.value[1]} as any})), gap:Arg1.gap, rows:Arg1.rows};
  const result = React.createElement(GridBS.default.Container, $props);
  return result
}, Item:GridBS.default.Item};

export default $$default;

export const Item: { make: React.ComponentType<{
  readonly children: React.ReactNode; 
  readonly h?: number; 
  readonly w?: number; 
  readonly x?: number; 
  readonly y?: number
}> } = GridBS.Item
