Repository: laboratoriobridge/bold
Pull request #419 (2019-06-17 19:42:40)

Move final-form components to final-form folder


Patch:
diff --git a/package.json b/package.json
index 150fa40be..b30a364f2 100644
--- a/package.json
+++ b/package.json
@@ -57,7 +57,7 @@
     "final-form-set-field-data": "1.0.2",
     "focus-trap-react": "6.0.0",
     "hoist-non-react-statics": "3.3.0",
-    "match-sorter": "3.1.0",
+    "match-sorter": "3.1.1",
     "react-dropzone": "10.1.5",
     "react-popper": "1.3.3",
     "react-text-mask": "5.4.3",
@@ -71,18 +71,18 @@
     "@mdx-js/mdx": "1.0.20",
     "@mdx-js/react": "1.0.20",
     "@next/mdx": "8.1.0",
-    "@storybook/addon-a11y": "5.1.3",
-    "@storybook/addon-actions": "5.1.3",
-    "@storybook/addon-info": "5.1.3",
-    "@storybook/addon-knobs": "5.1.3",
-    "@storybook/addons": "5.1.3",
-    "@storybook/react": "5.1.3",
+    "@storybook/addon-a11y": "5.1.8",
+    "@storybook/addon-actions": "5.1.8",
+    "@storybook/addon-info": "5.1.8",
+    "@storybook/addon-knobs": "5.1.8",
+    "@storybook/addons": "5.1.8",
+    "@storybook/react": "5.1.8",
     "@svgr/cli": "4.3.0",
     "@testing-library/react": "8.0.1",
     "@types/classnames": "2.2.8",
     "@types/highlight.js": "9.12.3",
     "@types/hoist-non-react-statics": "3.3.1",
-    "@types/jest": "24.0.13",
+    "@types/jest": "24.0.15",
     "@types/lodash": "4.14.134",
     "@types/match-sorter": "2.3.0",
     "@types/next": "8.0.5",
@@ -104,39 +104,39 @@
     "copyfiles": "2.1.0",
     "emotion": "10.0.9",
     "file-loader": "4.0.0",
-    "final-form": "4.13.1",
+    "final-form": "4.15.0",
     "gh-pages": "2.0.1",
     "highlight.js": "9.15.8",
-    "husky": "2.4.0",
+    "husky": "2.4.1",
     "intl": "1.2.5",
     "jest": "24.8.0",
     "jest-cli": "24.8.0",
     "jest-emotion": "10.0.11",
     "lodash": "4.17.11",
     "next": "8.1.0",
-    "prettier": "1.18.1",
-    "pretty-quick": "1.11.0",
+    "prettier": "1.18.2",
+    "pretty-quick": "1.11.1",
     "prop-types": "15.7.2",
     "raw-loader": "3.0.0",
     "react": "16.8.6",
     "react-docgen-typescript-loader": "3.1.0",
     "react-dom": "16.8.6",
-    "react-final-form": "6.0.1",
+    "react-final-form": "6.2.1",
     "react-ga": "2.5.7",
     "react-hooks-testing-library": "0.5.1",
     "react-test-renderer": "16.8.6",
-    "remark-highlight.js": "5.1.0",
-    "remark-slug": "5.1.1",
+    "remark-highlight.js": "5.1.1",
+    "remark-slug": "5.1.2",
     "sonar-scanner": "3.1.0",
     "ts-jest": "24.0.2",
     "tslint": "5.17.0",
     "tslint-config-prettier": "1.18.0",
     "tslint-react": "4.0.0",
-    "typescript": "3.5.1",
+    "typescript": "3.5.2",
     "uglifyjs-webpack-plugin": "2.1.3",
     "url-loader": "2.0.0",
     "waait": "1.0.5",
-    "webpack": "4.33.0",
-    "webpack-cli": "3.3.3"
+    "webpack": "4.34.0",
+    "webpack-cli": "3.3.4"
   }
 }
diff --git a/src/components/form/input/Checkbox/Checkbox.test.tsx b/src/components/Checkbox/Checkbox.test.tsx
similarity index 100%
rename from src/components/form/input/Checkbox/Checkbox.test.tsx
rename to src/components/Checkbox/Checkbox.test.tsx
diff --git a/src/components/form/input/Checkbox/Checkbox.tsx b/src/components/Checkbox/Checkbox.tsx
similarity index 97%
rename from src/components/form/input/Checkbox/Checkbox.tsx
rename to src/components/Checkbox/Checkbox.tsx
index f08bf3531..1f99a35ee 100644
--- a/src/components/form/input/Checkbox/Checkbox.tsx
+++ b/src/components/Checkbox/Checkbox.tsx
@@ -1,7 +1,7 @@
 import React, { CSSProperties, useEffect, useRef } from 'react'
 
-import { ClassNames, ExternalStyles, focusBoxShadow, Theme, useStyles } from '../../../../styles'
-import { Omit } from '../../../../util'
+import { ClassNames, ExternalStyles, focusBoxShadow, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util'
 import { Input, InputProps } from '../Input'
 
 export interface CheckboxProps extends Omit<InputProps, 'style'> {
diff --git a/src/components/form/input/Checkbox/__snapshots__/Checkbox.test.tsx.snap b/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap
similarity index 100%
rename from src/components/form/input/Checkbox/__snapshots__/Checkbox.test.tsx.snap
rename to src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap
diff --git a/src/components/form/input/Checkbox/index.ts b/src/components/Checkbox/index.ts
similarity index 100%
rename from src/components/form/input/Checkbox/index.ts
rename to src/components/Checkbox/index.ts
diff --git a/src/components/form/input/DateInput/CalendarPopup.tsx b/src/components/DateInput/CalendarPopup.tsx
similarity index 83%
rename from src/components/form/input/DateInput/CalendarPopup.tsx
rename to src/components/DateInput/CalendarPopup.tsx
index 1d23dac99..06b7a9252 100644
--- a/src/components/form/input/DateInput/CalendarPopup.tsx
+++ b/src/components/DateInput/CalendarPopup.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { Theme, useStyles } from '../../../../styles'
-import { Calendar, CalendarProps } from '../../../Calendar'
+import { Theme, useStyles } from '../../styles'
+import { Calendar, CalendarProps } from '../Calendar'
 
 export interface CalendarPopupProps extends CalendarProps {}
 
diff --git a/src/components/form/input/DateInput/DateInput.test.tsx b/src/components/DateInput/DateInput.test.tsx
similarity index 100%
rename from src/components/form/input/DateInput/DateInput.test.tsx
rename to src/components/DateInput/DateInput.test.tsx
diff --git a/src/components/form/input/DateInput/DateInput.tsx b/src/components/DateInput/DateInput.tsx
similarity index 86%
rename from src/components/form/input/DateInput/DateInput.tsx
rename to src/components/DateInput/DateInput.tsx
index 271eec30d..c935a0636 100644
--- a/src/components/form/input/DateInput/DateInput.tsx
+++ b/src/components/DateInput/DateInput.tsx
@@ -1,9 +1,8 @@
 import React from 'react'
 import createAutoCorrectedDatePipe from 'text-mask-addons/dist/createAutoCorrectedDatePipe'
 
-import { masks } from '../../../../util/masks'
-import { Omit } from '../../../../util/types'
-import { MaskedInput, MaskedInputProps } from '../../input/MaskedInput/MaskedInput'
+import { Omit } from '../../util/types'
+import { MaskedInput, MaskedInputProps } from '../MaskedInput/MaskedInput'
 
 export interface DateInputProps extends Omit<MaskedInputProps, 'onChange' | 'value'> {
   value?: Date
@@ -41,7 +40,7 @@ export function DateInput(props: DateInputProps) {
   return (
     <MaskedInput
       value={value ? formatter.format(value) : undefined}
-      mask={masks.date}
+      mask={[/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/]}
       placeholder='dd/mm/yyyy'
       pipe={createAutoCorrectedDatePipe('dd/mm/yyyy')}
       autoComplete='off'
diff --git a/src/components/form/input/DateInput/DatePickerInput.test.tsx b/src/components/DateInput/DatePickerInput.test.tsx
similarity index 100%
rename from src/components/form/input/DateInput/DatePickerInput.test.tsx
rename to src/components/DateInput/DatePickerInput.test.tsx
diff --git a/src/components/form/input/DateInput/DatePickerInput.tsx b/src/components/DateInput/DatePickerInput.tsx
similarity index 92%
rename from src/components/form/input/DateInput/DatePickerInput.tsx
rename to src/components/DateInput/DatePickerInput.tsx
index fe43994cf..bee661981 100644
--- a/src/components/form/input/DateInput/DatePickerInput.tsx
+++ b/src/components/DateInput/DatePickerInput.tsx
@@ -1,9 +1,9 @@
 import React, { useRef } from 'react'
 
-import { CalendarProps } from '../../../Calendar'
-import { isSameDay } from '../../../Calendar/util'
-import { FocusManagerContainer } from '../../../FocusManagerContainer'
-import { Popper, PopperController } from '../../../Popper'
+import { CalendarProps } from '../Calendar'
+import { isSameDay } from '../Calendar/util'
+import { FocusManagerContainer } from '../FocusManagerContainer'
+import { Popper, PopperController } from '../Popper'
 
 import { CalendarPopup } from './CalendarPopup'
 import { DateInput, DateInputProps } from './DateInput'
diff --git a/src/components/form/input/DateInput/__snapshots__/DateInput.test.tsx.snap b/src/components/DateInput/__snapshots__/DateInput.test.tsx.snap
similarity index 100%
rename from src/components/form/input/DateInput/__snapshots__/DateInput.test.tsx.snap
rename to src/components/DateInput/__snapshots__/DateInput.test.tsx.snap
diff --git a/src/components/form/input/DateInput/__snapshots__/DatePickerInput.test.tsx.snap b/src/components/DateInput/__snapshots__/DatePickerInput.test.tsx.snap
similarity index 100%
rename from src/components/form/input/DateInput/__snapshots__/DatePickerInput.test.tsx.snap
rename to src/components/DateInput/__snapshots__/DatePickerInput.test.tsx.snap
diff --git a/src/components/form/input/DateInput/index.ts b/src/components/DateInput/index.ts
similarity index 100%
rename from src/components/form/input/DateInput/index.ts
rename to src/components/DateInput/index.ts
diff --git a/src/components/FormControl/FormControl.stories.tsx b/src/components/FormControl/FormControl.stories.tsx
index 089ac2a2d..76da0e377 100644
--- a/src/components/FormControl/FormControl.stories.tsx
+++ b/src/components/FormControl/FormControl.stories.tsx
@@ -2,7 +2,7 @@ import { boolean, text } from '@storybook/addon-knobs'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { TextInput } from '../form'
+import { TextInput } from '../TextInput'
 
 import { FormControl } from './FormControl'
 
diff --git a/src/components/form/input/Input/Input.test.tsx b/src/components/Input/Input.test.tsx
similarity index 100%
rename from src/components/form/input/Input/Input.test.tsx
rename to src/components/Input/Input.test.tsx
diff --git a/src/components/form/input/Input/Input.tsx b/src/components/Input/Input.tsx
similarity index 100%
rename from src/components/form/input/Input/Input.tsx
rename to src/components/Input/Input.tsx
diff --git a/src/components/form/input/Input/__snapshots__/Input.test.tsx.snap b/src/components/Input/__snapshots__/Input.test.tsx.snap
similarity index 100%
rename from src/components/form/input/Input/__snapshots__/Input.test.tsx.snap
rename to src/components/Input/__snapshots__/Input.test.tsx.snap
diff --git a/src/components/form/input/Input/index.ts b/src/components/Input/index.ts
similarity index 100%
rename from src/components/form/input/Input/index.ts
rename to src/components/Input/index.ts
diff --git a/src/components/form/input/MaskedInput/MaskedInput.test.tsx b/src/components/MaskedInput/MaskedInput.test.tsx
similarity index 100%
rename from src/components/form/input/MaskedInput/MaskedInput.test.tsx
rename to src/components/MaskedInput/MaskedInput.test.tsx
diff --git a/src/components/form/input/MaskedInput/MaskedInput.tsx b/src/components/MaskedInput/MaskedInput.tsx
similarity index 86%
rename from src/components/form/input/MaskedInput/MaskedInput.tsx
rename to src/components/MaskedInput/MaskedInput.tsx
index e2e651eaf..1b82da293 100644
--- a/src/components/form/input/MaskedInput/MaskedInput.tsx
+++ b/src/components/MaskedInput/MaskedInput.tsx
@@ -1,8 +1,8 @@
 import React from 'react'
 import ReactTextMask, { MaskedInputProps as ReactMaskedInputProps } from 'react-text-mask'
 
-import { composeRefs } from '../../../../util/react'
-import { Omit } from '../../../../util/types'
+import { composeRefs } from '../../util/react'
+import { Omit } from '../../util/types'
 import { TextInput, TextInputProps } from '../TextInput'
 
 export type MaskType = ReactMaskedInputProps['mask']
diff --git a/src/components/form/input/MaskedInput/__snapshots__/MaskedInput.test.tsx.snap b/src/components/MaskedInput/__snapshots__/MaskedInput.test.tsx.snap
similarity index 100%
rename from src/components/form/input/MaskedInput/__snapshots__/MaskedInput.test.tsx.snap
rename to src/components/MaskedInput/__snapshots__/MaskedInput.test.tsx.snap
diff --git a/src/components/form/input/MaskedInput/index.ts b/src/components/MaskedInput/index.ts
similarity index 100%
rename from src/components/form/input/MaskedInput/index.ts
rename to src/components/MaskedInput/index.ts
diff --git a/src/components/MonthPicker/MonthPickerInput/MonthPickerInput.tsx b/src/components/MonthPicker/MonthPickerInput/MonthPickerInput.tsx
index 0e93dc36f..a3447a2d3 100644
--- a/src/components/MonthPicker/MonthPickerInput/MonthPickerInput.tsx
+++ b/src/components/MonthPicker/MonthPickerInput/MonthPickerInput.tsx
@@ -2,7 +2,7 @@ import React from 'react'
 import createAutoCorrectedDatePipe from 'text-mask-addons/dist/createAutoCorrectedDatePipe'
 
 import { Omit } from '../../../util'
-import { MaskedInput, MaskedInputProps } from '../../form/input/MaskedInput/MaskedInput'
+import { MaskedInput, MaskedInputProps } from '../../MaskedInput'
 import { Popper, PopperController } from '../../Popper'
 import { MonthPicker, ReferenceMonth } from '../MonthPicker/MonthPicker'
 
diff --git a/src/components/Paginator/Paginator.tsx b/src/components/Paginator/Paginator.tsx
index 6ac07049a..6b5bdc7cc 100644
--- a/src/components/Paginator/Paginator.tsx
+++ b/src/components/Paginator/Paginator.tsx
@@ -3,9 +3,9 @@ import React, { CSSProperties, useEffect, useState } from 'react'
 import { useLocale } from '../../locale'
 import { Theme, useStyles } from '../../styles'
 import { Button } from '../Button'
-import { TextInput } from '../form/input/TextInput/TextInput'
 import { Icon } from '../Icon'
 import { Text } from '../Text'
+import { TextInput } from '../TextInput'
 
 export interface PaginatorProps {
   /**
diff --git a/src/components/form/input/Radio/Radio.test.tsx b/src/components/Radio/Radio.test.tsx
similarity index 100%
rename from src/components/form/input/Radio/Radio.test.tsx
rename to src/components/Radio/Radio.test.tsx
diff --git a/src/components/form/input/Radio/Radio.tsx b/src/components/Radio/Radio.tsx
similarity index 99%
rename from src/components/form/input/Radio/Radio.tsx
rename to src/components/Radio/Radio.tsx
index a57057480..c6e7c7950 100644
--- a/src/components/form/input/Radio/Radio.tsx
+++ b/src/components/Radio/Radio.tsx
@@ -1,6 +1,6 @@
 import React, { CSSProperties } from 'react'
 
-import { ClassNames, focusBoxShadow, Theme, useStyles } from '../../../../styles'
+import { ClassNames, focusBoxShadow, Theme, useStyles } from '../../styles'
 import { Input, InputProps } from '../Input'
 
 export interface RadioProps extends InputProps {
diff --git a/src/components/form/input/Radio/__snapshots__/Radio.test.tsx.snap b/src/components/Radio/__snapshots__/Radio.test.tsx.snap
similarity index 100%
rename from src/components/form/input/Radio/__snapshots__/Radio.test.tsx.snap
rename to src/components/Radio/__snapshots__/Radio.test.tsx.snap
diff --git a/src/components/form/input/Radio/index.ts b/src/components/Radio/index.ts
similarity index 100%
rename from src/components/form/input/Radio/index.ts
rename to src/components/Radio/index.ts
diff --git a/src/components/form/input/Select/Select.test.tsx b/src/components/Select/Select.test.tsx
similarity index 100%
rename from src/components/form/input/Select/Select.test.tsx
rename to src/components/Select/Select.test.tsx
diff --git a/src/components/form/input/Select/Select.tsx b/src/components/Select/Select.tsx
similarity index 97%
rename from src/components/form/input/Select/Select.tsx
rename to src/components/Select/Select.tsx
index a2a1ec37f..76f308448 100644
--- a/src/components/form/input/Select/Select.tsx
+++ b/src/components/Select/Select.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 
-import { Omit } from '../../../../util'
+import { Omit } from '../../util'
 
 import { SelectMulti, SelectMultiProps } from './SelectMulti/SelectMulti'
 import { DefaultItemType, SelectSingle, SelectSingleProps } from './SelectSingle/SelectSingle'
diff --git a/src/components/form/input/Select/SelectMenu/SelectMenu.test.tsx b/src/components/Select/SelectMenu/SelectMenu.test.tsx
similarity index 100%
rename from src/components/form/input/Select/SelectMenu/SelectMenu.test.tsx
rename to src/components/Select/SelectMenu/SelectMenu.test.tsx
diff --git a/src/components/form/input/Select/SelectMenu/SelectMenu.tsx b/src/components/Select/SelectMenu/SelectMenu.tsx
similarity index 88%
rename from src/components/form/input/Select/SelectMenu/SelectMenu.tsx
rename to src/components/Select/SelectMenu/SelectMenu.tsx
index d5373a669..09ff566ff 100644
--- a/src/components/form/input/Select/SelectMenu/SelectMenu.tsx
+++ b/src/components/Select/SelectMenu/SelectMenu.tsx
@@ -1,7 +1,7 @@
 import React, { CSSProperties } from 'react'
 
-import { ExternalStyles, Theme, useStyles } from '../../../../../styles'
-import { Omit } from '../../../../../util'
+import { ExternalStyles, Theme, useStyles } from '../../../styles'
+import { Omit } from '../../../util'
 
 export interface SelectMenuProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'style'> {
   menuRef?: React.Ref<HTMLUListElement>
diff --git a/src/components/form/input/Select/SelectMenu/SelectMenuItem.test.tsx b/src/components/Select/SelectMenu/SelectMenuItem.test.tsx
similarity index 100%
rename from src/components/form/input/Select/SelectMenu/SelectMenuItem.test.tsx
rename to src/components/Select/SelectMenu/SelectMenuItem.test.tsx
diff --git a/src/components/form/input/Select/SelectMenu/SelectMenuItem.tsx b/src/components/Select/SelectMenu/SelectMenuItem.tsx
similarity index 93%
rename from src/components/form/input/Select/SelectMenu/SelectMenuItem.tsx
rename to src/components/Select/SelectMenu/SelectMenuItem.tsx
index 6e1668d45..728b5e9bf 100644
--- a/src/components/form/input/Select/SelectMenu/SelectMenuItem.tsx
+++ b/src/components/Select/SelectMenu/SelectMenuItem.tsx
@@ -1,8 +1,8 @@
 import React from 'react'
 
-import { ExternalStyles, Theme, useStyles, useTheme } from '../../../../../styles'
-import { Omit } from '../../../../../util'
-import { Spinner } from '../../../../Spinner'
+import { ExternalStyles, Theme, useStyles, useTheme } from '../../../styles'
+import { Omit } from '../../../util'
+import { Spinner } from '../../Spinner'
 
 export interface SelectMenuItemProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'style'> {
   style?: ExternalStyles
diff --git a/src/components/form/input/Select/SelectMenu/__snapshots__/SelectMenu.test.tsx.snap b/src/components/Select/SelectMenu/__snapshots__/SelectMenu.test.tsx.snap
similarity index 100%
rename from src/components/form/input/Select/SelectMenu/__snapshots__/SelectMenu.test.tsx.snap
rename to src/components/Select/SelectMenu/__snapshots__/SelectMenu.test.tsx.snap
diff --git a/src/components/form/input/Select/SelectMenu/__snapshots__/SelectMenuItem.test.tsx.snap b/src/components/Select/SelectMenu/__snapshots__/SelectMenuItem.test.tsx.snap
similarity index 100%
rename from src/components/form/input/Select/SelectMenu/__snapshots__/SelectMenuItem.test.tsx.snap
rename to src/components/Select/SelectMenu/__snapshots__/SelectMenuItem.test.tsx.snap
diff --git a/src/components/form/input/Select/SelectMenu/index.ts b/src/components/Select/SelectMenu/index.ts
similarity index 100%
rename from src/components/form/input/Select/SelectMenu/index.ts
rename to src/components/Select/SelectMenu/index.ts
diff --git a/src/components/form/input/Select/SelectMulti/MultiDownshift.test.tsx b/src/components/Select/SelectMulti/MultiDownshift.test.tsx
similarity index 100%
rename from src/components/form/input/Select/SelectMulti/MultiDownshift.test.tsx
rename to src/components/Select/SelectMulti/MultiDownshift.test.tsx
diff --git a/src/components/form/input/Select/SelectMulti/MultiDownshift.tsx b/src/components/Select/SelectMulti/MultiDownshift.tsx
similarity index 98%
rename from src/components/form/input/Select/SelectMulti/MultiDownshift.tsx
rename to src/components/Select/SelectMulti/MultiDownshift.tsx
index b4017886e..4734f664c 100644
--- a/src/components/form/input/Select/SelectMulti/MultiDownshift.tsx
+++ b/src/components/Select/SelectMulti/MultiDownshift.tsx
@@ -3,7 +3,7 @@
 import Downshift, { DownshiftState, StateChangeOptions } from 'downshift'
 import React, { useEffect, useRef, useState } from 'react'
 
-import { isEqual as deepIsEqual, Omit, some } from '../../../../../util'
+import { isEqual as deepIsEqual, Omit, some } from '../../../util'
 import { SelectDownshift, SelectDownshiftProps, SelectDownshiftRenderProps } from '../SelectSingle/SelectDownshift'
 
 export interface MultiDownshiftProps<T> extends Omit<SelectDownshiftProps<T>, 'onSelect' | 'onChange'> {
diff --git a/src/components/form/input/Select/SelectMulti/SelectMulti.test.tsx b/src/components/Select/SelectMulti/SelectMulti.test.tsx
similarity index 100%
rename from src/components/form/input/Select/SelectMulti/SelectMulti.test.tsx
rename to src/components/Select/SelectMulti/SelectMulti.test.tsx
diff --git a/src/components/form/input/Select/SelectMulti/SelectMulti.tsx b/src/components/Select/SelectMulti/SelectMulti.tsx
similarity index 97%
rename from src/components/form/input/Select/SelectMulti/SelectMulti.tsx
rename to src/components/Select/SelectMulti/SelectMulti.tsx
index 29a3c566a..542277f39 100644
--- a/src/components/form/input/Select/SelectMulti/SelectMulti.tsx
+++ b/src/components/Select/SelectMulti/SelectMulti.tsx
@@ -1,8 +1,8 @@
 import React from 'react'
 
-import { Omit } from '../../../../../util'
-import { HFlow } from '../../../../Flow'
+import { Omit } from '../../../util'
 import { Checkbox } from '../../Checkbox/Checkbox'
+import { HFlow } from '../../Flow'
 import { DefaultItemType } from '../SelectSingle'
 import { SelectDownshiftMenu, SelectDownshiftMenuProps } from '../SelectSingle/SelectDownshiftMenu'
 
diff --git a/src/components/form/input/Select/SelectMulti/SelectMultiInput.tsx b/src/components/Select/SelectMulti/SelectMultiInput.tsx
similarity index 96%
rename from src/components/form/input/Select/SelectMulti/SelectMultiInput.tsx
rename to src/components/Select/SelectMulti/SelectMultiInput.tsx
index b948866ad..9cc28c5d8 100644
--- a/src/components/form/input/Select/SelectMulti/SelectMultiInput.tsx
+++ b/src/components/Select/SelectMulti/SelectMultiInput.tsx
@@ -1,7 +1,7 @@
 import React, { CSSProperties, useRef } from 'react'
 
-import { Theme, useStyles } from '../../../../../styles'
-import { Omit } from '../../../../../util'
+import { Theme, useStyles } from '../../../styles'
+import { Omit } from '../../../util'
 import { Input, InputProps } from '../../Input/Input'
 import { createStyleParts, InputStatus } from '../../TextInput/TextInputBase'
 
diff --git a/src/components/form/input/Select/SelectMulti/SelectMultiItem.tsx b/src/components/Select/SelectMulti/SelectMultiItem.tsx
similarity index 89%
rename from src/components/form/input/Select/SelectMulti/SelectMultiItem.tsx
rename to src/components/Select/SelectMulti/SelectMultiItem.tsx
index 5af4dee09..b40c725b3 100644
--- a/src/components/form/input/Select/SelectMulti/SelectMultiItem.tsx
+++ b/src/components/Select/SelectMulti/SelectMultiItem.tsx
@@ -1,8 +1,8 @@
 import React, { CSSProperties } from 'react'
 
-import { useLocale } from '../../../../../locale'
-import { ExternalStyles, Theme, useStyles } from '../../../../../styles'
-import Times from '../../../../Icon/generated/TimesDefault'
+import { useLocale } from '../../../locale'
+import { ExternalStyles, Theme, useStyles } from '../../../styles'
+import Times from '../../Icon/generated/TimesDefault'
 
 export interface SelectMultiItemProps {
   style?: ExternalStyles
diff --git a/src/components/form/input/Select/SelectMulti/__snapshots__/MultiDownshift.test.tsx.snap b/src/components/Select/SelectMulti/__snapshots__/MultiDownshift.test.tsx.snap
similarity index 100%
rename from src/components/form/input/Select/SelectMulti/__snapshots__/MultiDownshift.test.tsx.snap
rename to src/components/Select/SelectMulti/__snapshots__/MultiDownshift.test.tsx.snap
diff --git a/src/components/form/input/Select/SelectMulti/__snapshots__/SelectMulti.test.tsx.snap b/src/components/Select/SelectMulti/__snapshots__/SelectMulti.test.tsx.snap
similarity index 100%
rename from src/components/form/input/Select/SelectMulti/__snapshots__/SelectMulti.test.tsx.snap
rename to src/components/Select/SelectMulti/__snapshots__/SelectMulti.test.tsx.snap
diff --git a/src/components/form/input/Select/SelectMulti/__snapshots__/SelectMultiItem.test.tsx.snap b/src/components/Select/SelectMulti/__snapshots__/SelectMultiItem.test.tsx.snap
similarity index 100%
rename from src/components/form/input/Select/SelectMulti/__snapshots__/SelectMultiItem.test.tsx.snap
rename to src/components/Select/SelectMulti/__snapshots__/SelectMultiItem.test.tsx.snap
diff --git a/src/components/form/input/Select/SelectMulti/index.ts b/src/components/Select/SelectMulti/index.ts
similarity index 100%
rename from src/components/form/input/Select/SelectMulti/index.ts
rename to src/components/Select/SelectMulti/index.ts
diff --git a/src/components/form/input/Select/SelectSingle/SelectDownshift.tsx b/src/components/Select/SelectSingle/SelectDownshift.tsx
similarity index 100%
rename from src/components/form/input/Select/SelectSingle/SelectDownshift.tsx
rename to src/components/Select/SelectSingle/SelectDownshift.tsx
diff --git a/src/components/form/input/Select/SelectSingle/SelectDownshiftMenu.tsx b/src/components/Select/SelectSingle/SelectDownshiftMenu.tsx
similarity index 98%
rename from src/components/form/input/Select/SelectSingle/SelectDownshiftMenu.tsx
rename to src/components/Select/SelectSingle/SelectDownshiftMenu.tsx
index c1d42af11..7dbe53048 100644
--- a/src/components/form/input/Select/SelectSingle/SelectDownshiftMenu.tsx
+++ b/src/components/Select/SelectSingle/SelectDownshiftMenu.tsx
@@ -1,7 +1,7 @@
 import { ControllerStateAndHelpers } from 'downshift'
 import React, { CSSProperties } from 'react'
 
-import { useStyles } from '../../../../../styles'
+import { useStyles } from '../../../styles'
 import { SelectEmptyItem, SelectLoadingItem, SelectMenu, SelectMenuItem } from '../SelectMenu'
 
 export interface SelectDownshiftMenuProps<T> {
diff --git a/src/components/form/input/Select/SelectSingle/SelectSingle.test.tsx b/src/components/Select/SelectSingle/SelectSingle.test.tsx
similarity index 100%
rename from src/components/form/input/Select/SelectSingle/SelectSingle.test.tsx
rename to src/components/Select/SelectSingle/SelectSingle.test.tsx
diff --git a/src/components/form/input/Select/SelectSingle/SelectSingle.tsx b/src/components/Select/SelectSingle/SelectSingle.tsx
similarity index 97%
rename from src/components/form/input/Select/SelectSingle/SelectSingle.tsx
rename to src/components/Select/SelectSingle/SelectSingle.tsx
index f35780aa5..bfd667bff 100644
--- a/src/components/form/input/Select/SelectSingle/SelectSingle.tsx
+++ b/src/components/Select/SelectSingle/SelectSingle.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { useStyles } from '../../../../../styles'
-import { Omit } from '../../../../../util'
+import { useStyles } from '../../../styles'
+import { Omit } from '../../../util'
 import { TextInput, TextInputProps } from '../../TextInput/TextInput'
 
 import { SelectDownshift, SelectDownshiftProps, SelectDownshiftRenderProps } from './SelectDownshift'
diff --git a/src/components/form/input/Select/SelectSingle/__snapshots__/SelectSingle.test.tsx.snap b/src/components/Select/SelectSingle/__snapshots__/SelectSingle.test.tsx.snap
similarity index 100%
rename from src/components/form/input/Select/SelectSingle/__snapshots__/SelectSingle.test.tsx.snap
rename to src/components/Select/SelectSingle/__snapshots__/SelectSingle.test.tsx.snap
diff --git a/src/components/form/input/Select/SelectSingle/index.ts b/src/components/Select/SelectSingle/index.ts
similarity index 100%
rename from src/components/form/input/Select/SelectSingle/index.ts
rename to src/components/Select/SelectSingle/index.ts
diff --git a/src/components/form/input/Select/__snapshots__/Select.test.tsx.snap b/src/components/Select/__snapshots__/Select.test.tsx.snap
similarity index 100%
rename from src/components/form/input/Select/__snapshots__/Select.test.tsx.snap
rename to src/components/Select/__snapshots__/Select.test.tsx.snap
diff --git a/src/components/form/input/Select/index.ts b/src/components/Select/index.ts
similarity index 100%
rename from src/components/form/input/Select/index.ts
rename to src/components/Select/index.ts
diff --git a/src/components/SelectInline/SelectInline.stories.tsx b/src/components/SelectInline/SelectInline.stories.tsx
index 57ba450c7..5fd14026b 100644
--- a/src/components/SelectInline/SelectInline.stories.tsx
+++ b/src/components/SelectInline/SelectInline.stories.tsx
@@ -2,7 +2,7 @@ import { action } from '@storybook/addon-actions'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { DefaultItemType } from '../form'
+import { DefaultItemType } from '../Select/SelectSingle'
 
 import { SelectInline } from './SelectInline'
 
diff --git a/src/components/SelectInline/SelectInline.tsx b/src/components/SelectInline/SelectInline.tsx
index 58cc8c5ba..ce90df6f8 100644
--- a/src/components/SelectInline/SelectInline.tsx
+++ b/src/components/SelectInline/SelectInline.tsx
@@ -5,9 +5,10 @@ import { useTheme } from '../../styles'
 import { Omit } from '../../util'
 import { composeRefs } from '../../util/react'
 import { Button, ButtonProps } from '../Button'
-import { Select, SelectSingleProps } from '../form/input/Select'
 import { Icon } from '../Icon'
 import { Popper, PopperController, PopperProps } from '../Popper'
+import { Select } from '../Select/Select'
+import { SelectSingleProps } from '../Select/SelectSingle'
 import { Text } from '../Text'
 
 export interface SelectInlineProps<T> extends SelectSingleProps<T> {
diff --git a/src/components/form/input/Switch/Switch.test.tsx b/src/components/Switch/Switch.test.tsx
similarity index 100%
rename from src/components/form/input/Switch/Switch.test.tsx
rename to src/components/Switch/Switch.test.tsx
diff --git a/src/components/form/input/Switch/Switch.tsx b/src/components/Switch/Switch.tsx
similarity index 98%
rename from src/components/form/input/Switch/Switch.tsx
rename to src/components/Switch/Switch.tsx
index ef9c35cfb..bc115911a 100644
--- a/src/components/form/input/Switch/Switch.tsx
+++ b/src/components/Switch/Switch.tsx
@@ -1,7 +1,7 @@
 import React, { CSSProperties } from 'react'
 
-import { ClassNames, focusBoxShadow, Theme, useStyles } from '../../../../styles'
-import { Omit } from '../../../../util'
+import { ClassNames, focusBoxShadow, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util'
 import { Input, InputProps } from '../Input'
 
 export interface SwitchProps extends Omit<React.HTMLAttributes<HTMLLabelElement>, 'onChange'> {
diff --git a/src/components/form/input/Switch/__snapshots__/Switch.test.tsx.snap b/src/components/Switch/__snapshots__/Switch.test.tsx.snap
similarity index 100%
rename from src/components/form/input/Switch/__snapshots__/Switch.test.tsx.snap
rename to src/components/Switch/__snapshots__/Switch.test.tsx.snap
diff --git a/src/components/form/input/Switch/index.ts b/src/components/Switch/index.ts
similarity index 100%
rename from src/components/form/input/Switch/index.ts
rename to src/components/Switch/index.ts
diff --git a/src/components/form/input/TextArea/TextArea.test.tsx b/src/components/TextArea/TextArea.test.tsx
similarity index 100%
rename from src/components/form/input/TextArea/TextArea.test.tsx
rename to src/components/TextArea/TextArea.test.tsx
diff --git a/src/components/form/input/TextArea/TextArea.tsx b/src/components/TextArea/TextArea.tsx
similarity index 92%
rename from src/components/form/input/TextArea/TextArea.tsx
rename to src/components/TextArea/TextArea.tsx
index 7fd42545d..a5534de4f 100644
--- a/src/components/form/input/TextArea/TextArea.tsx
+++ b/src/components/TextArea/TextArea.tsx
@@ -1,7 +1,7 @@
 import React, { CSSProperties } from 'react'
 
-import { ExternalStyles, Theme, useStyles } from '../../../../styles'
-import { Omit } from '../../../../util/types'
+import { ExternalStyles, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util/types'
 import { createStyles as createTextInputBaseStyles, InputStatus } from '../TextInput/TextInputBase'
 
 export interface TextAreaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'style'> {
diff --git a/src/components/form/input/TextArea/__snapshots__/TextArea.test.tsx.snap b/src/components/TextArea/__snapshots__/TextArea.test.tsx.snap
similarity index 100%
rename from src/components/form/input/TextArea/__snapshots__/TextArea.test.tsx.snap
rename to src/components/TextArea/__snapshots__/TextArea.test.tsx.snap
diff --git a/src/components/form/input/TextArea/index.ts b/src/components/TextArea/index.ts
similarity index 100%
rename from src/components/form/input/TextArea/index.ts
rename to src/components/TextArea/index.ts
diff --git a/src/components/form/input/TextInput/InputWrapper.test.tsx b/src/components/TextInput/InputWrapper.test.tsx
similarity index 100%
rename from src/components/form/input/TextInput/InputWrapper.test.tsx
rename to src/components/TextInput/InputWrapper.test.tsx
diff --git a/src/components/form/input/TextInput/InputWrapper.tsx b/src/components/TextInput/InputWrapper.tsx
similarity index 93%
rename from src/components/form/input/TextInput/InputWrapper.tsx
rename to src/components/TextInput/InputWrapper.tsx
index 054c06c00..f403b6991 100644
--- a/src/components/form/input/TextInput/InputWrapper.tsx
+++ b/src/components/TextInput/InputWrapper.tsx
@@ -1,9 +1,9 @@
 import React, { CSSProperties } from 'react'
 
-import { Theme, useStyles } from '../../../../styles'
-import { Button, ButtonProps } from '../../../Button'
-import { Icons } from '../../../Icon/generated/Icons'
-import { Icon } from '../../../Icon/Icon'
+import { Theme, useStyles } from '../../styles'
+import { Button, ButtonProps } from '../Button'
+import { Icons } from '../Icon/generated/Icons'
+import { Icon } from '../Icon/Icon'
 
 export interface InputWrapperProps {
   icon?: Icons
diff --git a/src/components/form/input/TextInput/TextInput.test.tsx b/src/components/TextInput/TextInput.test.tsx
similarity index 100%
rename from src/components/form/input/TextInput/TextInput.test.tsx
rename to src/components/TextInput/TextInput.test.tsx
diff --git a/src/components/form/input/TextInput/TextInput.tsx b/src/components/TextInput/TextInput.tsx
similarity index 100%
rename from src/components/form/input/TextInput/TextInput.tsx
rename to src/components/TextInput/TextInput.tsx
diff --git a/src/components/form/input/TextInput/TextInputBase.test.tsx b/src/components/TextInput/TextInputBase.test.tsx
similarity index 100%
rename from src/components/form/input/TextInput/TextInputBase.test.tsx
rename to src/components/TextInput/TextInputBase.test.tsx
diff --git a/src/components/form/input/TextInput/TextInputBase.tsx b/src/components/TextInput/TextInputBase.tsx
similarity index 97%
rename from src/components/form/input/TextInput/TextInputBase.tsx
rename to src/components/TextInput/TextInputBase.tsx
index dabcf5f17..d612538cd 100644
--- a/src/components/form/input/TextInput/TextInputBase.tsx
+++ b/src/components/TextInput/TextInputBase.tsx
@@ -1,7 +1,7 @@
 import React, { CSSProperties } from 'react'
 
-import { ExternalStyles, focusBoxShadow, Theme, useStyles } from '../../../../styles'
-import { Omit } from '../../../../util'
+import { ExternalStyles, focusBoxShadow, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util'
 import { Input, InputProps } from '../Input/Input'
 
 export type InputStatus = 'error'
diff --git a/src/components/form/input/TextInput/__snapshots__/InputWrapper.test.tsx.snap b/src/components/TextInput/__snapshots__/InputWrapper.test.tsx.snap
similarity index 100%
rename from src/components/form/input/TextInput/__snapshots__/InputWrapper.test.tsx.snap
rename to src/components/TextInput/__snapshots__/InputWrapper.test.tsx.snap
diff --git a/src/components/form/input/TextInput/__snapshots__/TextInput.test.tsx.snap b/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap
similarity index 100%
rename from src/components/form/input/TextInput/__snapshots__/TextInput.test.tsx.snap
rename to src/components/TextInput/__snapshots__/TextInput.test.tsx.snap
diff --git a/src/components/form/input/TextInput/__snapshots__/TextInputBase.test.tsx.snap b/src/components/TextInput/__snapshots__/TextInputBase.test.tsx.snap
similarity index 100%
rename from src/components/form/input/TextInput/__snapshots__/TextInputBase.test.tsx.snap
rename to src/components/TextInput/__snapshots__/TextInputBase.test.tsx.snap
diff --git a/src/components/form/input/TextInput/index.ts b/src/components/TextInput/index.ts
similarity index 100%
rename from src/components/form/input/TextInput/index.ts
rename to src/components/TextInput/index.ts
diff --git a/src/components/form/input/TimeInput/TimeInput.test.tsx b/src/components/TimeInput/TimeInput.test.tsx
similarity index 100%
rename from src/components/form/input/TimeInput/TimeInput.test.tsx
rename to src/components/TimeInput/TimeInput.test.tsx
diff --git a/src/components/form/input/TimeInput/TimeInput.tsx b/src/components/TimeInput/TimeInput.tsx
similarity index 89%
rename from src/components/form/input/TimeInput/TimeInput.tsx
rename to src/components/TimeInput/TimeInput.tsx
index 411bc9df6..0ff620cb8 100644
--- a/src/components/form/input/TimeInput/TimeInput.tsx
+++ b/src/components/TimeInput/TimeInput.tsx
@@ -2,10 +2,11 @@ import React from 'react'
 import { conformToMask } from 'react-text-mask'
 import createAutoCorrectedDatePipe from 'text-mask-addons/dist/createAutoCorrectedDatePipe'
 
-import { Omit } from '../../../../util'
-import { masks } from '../../../../util/masks'
+import { Omit } from '../../util'
 import { MaskedInput, MaskedInputProps } from '../MaskedInput/MaskedInput'
 
+const mask = [/\d/, /\d/, ':', /\d/, /\d/]
+
 export interface TimeInputProps extends Omit<MaskedInputProps, 'onChange'> {
   /**
    * Original input change event handler
@@ -48,7 +49,7 @@ export function TimeInput(props: TimeInputProps) {
 
   return (
     <MaskedInput
-      mask={masks.time}
+      mask={mask}
       placeholder='hh:mm'
       pipe={createAutoCorrectedDatePipe('HH:MM')}
       {...rest}
@@ -62,7 +63,7 @@ export const padTime = (value: string): string => {
   const numbersOnly = value.replace(/[^\d]/g, '')
   if (numbersOnly.length < 4) {
     const paddedValue = numbersOnly.padEnd(4, '0')
-    const conformedValue = conformToMask(paddedValue, masks.time, {})
+    const conformedValue = conformToMask(paddedValue, mask, {})
     return conformedValue.conformedValue
   }
   return value
diff --git a/src/components/form/input/TimeInput/__snapshots__/TimeInput.test.tsx.snap b/src/components/TimeInput/__snapshots__/TimeInput.test.tsx.snap
similarity index 100%
rename from src/components/form/input/TimeInput/__snapshots__/TimeInput.test.tsx.snap
rename to src/components/TimeInput/__snapshots__/TimeInput.test.tsx.snap
diff --git a/src/components/form/input/TimeInput/index.ts b/src/components/TimeInput/index.ts
similarity index 100%
rename from src/components/form/input/TimeInput/index.ts
rename to src/components/TimeInput/index.ts
diff --git a/src/components/form/field/CheckboxField/CheckboxField.tsx b/src/components/form/field/CheckboxField/CheckboxField.tsx
deleted file mode 100644
index 9c8d4c894..000000000
--- a/src/components/form/field/CheckboxField/CheckboxField.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import React from 'react'
-
-import { BaseFieldProps, extractInputProps, Field, RenderProps } from '../../finalForm/Field'
-import { Checkbox, CheckboxProps } from '../../input/Checkbox/Checkbox'
-
-export interface CheckboxFieldProps extends BaseFieldProps<CheckboxProps> {}
-
-export class CheckboxField extends React.Component<CheckboxFieldProps> {
-  render() {
-    return <Field<boolean> {...this.props} type='checkbox' hasWrapper={false} render={this.renderCheck} />
-  }
-
-  private renderCheck = (props: RenderProps) => (
-    <Checkbox {...extractInputProps(this.props)} {...props.input} label={this.props.label} />
-  )
-}
diff --git a/src/components/form/field/MaskedField/MaskedField.stories.tsx b/src/components/form/field/MaskedField/MaskedField.stories.tsx
deleted file mode 100644
index 07fd34364..000000000
--- a/src/components/form/field/MaskedField/MaskedField.stories.tsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import { action } from '@storybook/addon-actions'
-import { boolean } from '@storybook/addon-knobs'
-import { storiesOf } from '@storybook/react'
-import React from 'react'
-
-import { withForm } from '../../../../stories-addons'
-
-import { MaskedField } from './MaskedField'
-import { CnsField, CpfField, TelefoneField, TimeField } from './maskedFields'
-
-storiesOf('Form|MaskedField', module)
-  .addDecorator(withForm())
-  .add('default', () => (
-    <MaskedField
-      mask={['(', /\d/, /\d/, /\d/, ')']}
-      name='generic'
-      label='Generic masked field'
-      disabled={boolean('disabled', false)}
-      guide={boolean('guide', true)}
-      keepCharPositions={boolean('keepCharPositions', false)}
-      onChange={action('changed')}
-    />
-  ))
-  .add('CpfField', () => (
-    <CpfField
-      name='cpf'
-      label='CPF'
-      disabled={boolean('disabled', false)}
-      guide={boolean('guide', true)}
-      keepCharPositions={boolean('keepCharPositions', false)}
-      onChange={action('changed')}
-    />
-  ))
-  .add('TelefoneField', () => (
-    <TelefoneField
-      name='phone'
-      label='Phone (pt-br)'
-      disabled={boolean('disabled', false)}
-      guide={boolean('guide', true)}
-      keepCharPositions={boolean('keepCharPositions', false)}
-      icon='zoomOutline'
-      onIconClick={action('clicked')}
-      onChange={action('changed')}
-    />
-  ))
-  .add('TimeField', () => (
-    <TimeField
-      name='time'
-      label='Time (hour:minute)'
-      disabled={boolean('disabled', false)}
-      guide={boolean('guide', true)}
-      keepCharPositions={boolean('keepCharPositions', false)}
-      onChange={action('changed')}
-    />
-  ))
-  .add('CnsField', () => (
-    <CnsField
-      name='CNS'
-      label='CNS'
-      disabled={boolean('disabled', false)}
-      guide={boolean('guide', true)}
-      keepCharPositions={boolean('keepCharPositions', false)}
-      onChange={action('changed')}
-    />
-  ))
diff --git a/src/components/form/field/MaskedField/MaskedField.tsx b/src/components/form/field/MaskedField/MaskedField.tsx
deleted file mode 100644
index 9c425561d..000000000
--- a/src/components/form/field/MaskedField/MaskedField.tsx
+++ /dev/null
@@ -1,6 +0,0 @@
-import { BaseFieldProps, withField } from '../../finalForm/Field'
-import { MaskedInput, MaskedInputProps } from '../../input/MaskedInput/MaskedInput'
-
-export type MaskedFieldProps = BaseFieldProps<MaskedInputProps>
-
-export const MaskedField = withField(MaskedInput)
diff --git a/src/components/form/field/MaskedField/maskedFields/CepField.tsx b/src/components/form/field/MaskedField/maskedFields/CepField.tsx
deleted file mode 100644
index 56d8e0aa0..000000000
--- a/src/components/form/field/MaskedField/maskedFields/CepField.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import React from 'react'
-
-import { masks, onlyNumbers } from '../../../../../util/masks'
-import { MaskedField, MaskedFieldProps } from '../../MaskedField'
-
-export interface CepFieldProps extends MaskedFieldProps {}
-
-export class CepField extends React.Component<CepFieldProps> {
-  static defaultProps: Partial<CepFieldProps> = {}
-
-  render() {
-    return <MaskedField mask={masks.cep} placeholder='_____-___' parse={onlyNumbers} {...this.props} />
-  }
-}
diff --git a/src/components/form/field/MaskedField/maskedFields/CnsField.tsx b/src/components/form/field/MaskedField/maskedFields/CnsField.tsx
deleted file mode 100644
index b69ee919e..000000000
--- a/src/components/form/field/MaskedField/maskedFields/CnsField.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import React from 'react'
-
-import { masks, onlyNumbers } from '../../../../../util/masks'
-import { MaskedField, MaskedFieldProps } from '../../MaskedField'
-
-export interface CnsFieldProps extends MaskedFieldProps {}
-
-export class CnsField extends React.Component<CnsFieldProps> {
-  static defaultProps: Partial<CnsFieldProps> = {}
-
-  render() {
-    return <MaskedField mask={masks.cns} parse={onlyNumbers} {...this.props} />
-  }
-}
diff --git a/src/components/form/field/MaskedField/maskedFields/CpfField.tsx b/src/components/form/field/MaskedField/maskedFields/CpfField.tsx
deleted file mode 100644
index 8966e83ee..000000000
--- a/src/components/form/field/MaskedField/maskedFields/CpfField.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import React from 'react'
-
-import { masks, onlyNumbers } from '../../../../../util/masks'
-import { MaskedField, MaskedFieldProps } from '../../MaskedField'
-
-export interface CpfFieldProps extends MaskedFieldProps {}
-
-export class CpfField extends React.Component<CpfFieldProps> {
-  static defaultProps: Partial<CpfFieldProps> = {}
-
-  render() {
-    return <MaskedField mask={masks.cpf} placeholder='___.___.___-__' parse={onlyNumbers} {...this.props} />
-  }
-}
diff --git a/src/components/form/field/MaskedField/maskedFields/TelefoneField.tsx b/src/components/form/field/MaskedField/maskedFields/TelefoneField.tsx
deleted file mode 100644
index 439c41663..000000000
--- a/src/components/form/field/MaskedField/maskedFields/TelefoneField.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import React from 'react'
-
-import { masks, onlyNumbers } from '../../../../../util/masks'
-import { MaskedField, MaskedFieldProps } from '../../MaskedField'
-
-export interface TelefoneFieldProps extends MaskedFieldProps {}
-
-export class TelefoneField extends React.Component<TelefoneFieldProps> {
-  static defaultProps: Partial<TelefoneFieldProps> = {}
-
-  render() {
-    return <MaskedField mask={masks.telefone} placeholder='(__) _____-____' parse={onlyNumbers} {...this.props} />
-  }
-}
diff --git a/src/components/form/field/MaskedField/maskedFields/index.ts b/src/components/form/field/MaskedField/maskedFields/index.ts
deleted file mode 100644
index 805e67e74..000000000
--- a/src/components/form/field/MaskedField/maskedFields/index.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export * from './CepField'
-export * from './CnsField'
-export * from './CpfField'
-export * from './TelefoneField'
-export * from './TimeField'
diff --git a/src/components/form/field/TextAreaField/TextAreaField.tsx b/src/components/form/field/TextAreaField/TextAreaField.tsx
deleted file mode 100644
index cf84348dd..000000000
--- a/src/components/form/field/TextAreaField/TextAreaField.tsx
+++ /dev/null
@@ -1,6 +0,0 @@
-import { BaseFieldProps, withField } from '../../finalForm/Field'
-import { TextArea, TextAreaProps } from '../../input/TextArea/TextArea'
-
-export type TextAreaFieldProps = BaseFieldProps<TextAreaProps>
-
-export const TextAreaField = withField(TextArea)
diff --git a/src/components/form/field/TextField/TextField.tsx b/src/components/form/field/TextField/TextField.tsx
deleted file mode 100644
index 9db4f488f..000000000
--- a/src/components/form/field/TextField/TextField.tsx
+++ /dev/null
@@ -1,6 +0,0 @@
-import { BaseFieldProps, withField } from '../../finalForm/Field'
-import { TextInput, TextInputProps } from '../../input/TextInput/TextInput'
-
-export type TextFieldProps = BaseFieldProps<TextInputProps, string>
-
-export const TextField = withField<string, TextInputProps>(TextInput)
diff --git a/src/components/form/finalForm/Form/index.ts b/src/components/form/finalForm/Form/index.ts
deleted file mode 100644
index 5e819e959..000000000
--- a/src/components/form/finalForm/Form/index.ts
+++ /dev/null
@@ -1,1 +0,0 @@
-export * from './Form'
diff --git a/src/components/form/index.ts b/src/components/form/index.ts
deleted file mode 100644
index 043e91f2f..000000000
--- a/src/components/form/index.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-export * from './field/CheckboxField'
-export * from './field/DateField'
-export * from './field/HiddenField'
-export * from './field/MaskedField'
-export * from './field/NumberField'
-export * from './field/RadioField'
-export * from './field/SelectField'
-export * from './field/SwitchField'
-export * from './field/TextField'
-export * from './field/TextAreaField'
-export * from './field/MonthField'
-
-export * from './input/Checkbox'
-export * from './input/DateInput'
-export * from './input/Input'
-export * from './input/MaskedInput'
-export * from './input/Radio'
-export * from './input/Select'
-export * from './input/Switch'
-export * from './input/TextArea'
-export * from './input/TextInput'
-export * from './input/TimeInput'
-
-export * from './finalForm/ErrorField'
-export * from './finalForm/Field'
-export * from './finalForm/Form'
-export * from './finalForm/SubmitButton'
diff --git a/src/components/index.ts b/src/components/index.ts
index 4504bd18e..14e62696c 100644
--- a/src/components/index.ts
+++ b/src/components/index.ts
@@ -4,7 +4,9 @@ export * from './Breadcrumb'
 export * from './Button'
 export * from './ButtonGroup'
 export * from './Calendar'
+export * from './Checkbox'
 export * from './Currency'
+export * from './DateInput'
 export * from './Dropdown'
 export * from './FileUploader'
 export * from './Flow'
@@ -15,7 +17,9 @@ export * from './HeadingSection'
 export * from './Highlight'
 export * from './Icon'
 export * from './InfoLabel'
+export * from './Input'
 export * from './Link'
+export * from './MaskedInput'
 export * from './Modal'
 export * from './MonthPicker'
 export * from './Number'
@@ -25,14 +29,18 @@ export * from './Popover'
 export * from './Popper'
 export * from './Portal'
 export * from './Progress'
+export * from './Radio'
 export * from './RootRef'
+export * from './Select'
 export * from './SelectInline'
 export * from './Spinner'
 export * from './StickyContainer'
+export * from './Switch'
 export * from './Table'
 export * from './Tabs'
 export * from './Tag'
 export * from './Text'
+export * from './TextArea'
+export * from './TextInput'
+export * from './TimeInput'
 export * from './Tooltip'
-
-export * from './form'
diff --git a/src/components/form/finalForm/ErrorField.tsx b/src/form/ErrorField/ErrorField.tsx
similarity index 55%
rename from src/components/form/finalForm/ErrorField.tsx
rename to src/form/ErrorField/ErrorField.tsx
index c8bb7cb78..082b9fb16 100644
--- a/src/components/form/finalForm/ErrorField.tsx
+++ b/src/form/ErrorField/ErrorField.tsx
@@ -1,26 +1,24 @@
 import React from 'react'
 import { Field, FieldRenderProps } from 'react-final-form'
 
-import { FormError } from '../../FormControl'
+import { FormError } from '../../components/FormControl'
 
 export interface ErrorFieldProps {
   name: string
   ignoreObjectError?: boolean
 }
 
-export class ErrorField extends React.Component<ErrorFieldProps> {
-  render() {
-    return <Field name={this.props.name} render={this.renderField} />
-  }
+export function ErrorField(props: ErrorFieldProps) {
+  const { name, ignoreObjectError } = props
 
-  renderField = (renderProps: FieldRenderProps<HTMLElement>) => {
+  const renderField = (renderProps: FieldRenderProps<any, HTMLElement>) => {
     const {
       meta: { touched, error, dirtySinceLastSubmit, submitError },
     } = renderProps
 
     const hasError = (!!error && touched) || (!!submitError && !dirtySinceLastSubmit)
 
-    const ignore = this.props.ignoreObjectError && !(typeof error === 'string') && !(typeof submitError === 'string')
+    const ignore = ignoreObjectError && !(typeof error === 'string') && !(typeof submitError === 'string')
 
     if (hasError && !ignore) {
       return <FormError>{error || submitError}</FormError>
@@ -28,4 +26,6 @@ export class ErrorField extends React.Component<ErrorFieldProps> {
 
     return null
   }
+
+  return <Field name={name} render={renderField} />
 }
diff --git a/src/form/ErrorField/index.ts b/src/form/ErrorField/index.ts
new file mode 100644
index 000000000..180630184
--- /dev/null
+++ b/src/form/ErrorField/index.ts
@@ -0,0 +1,1 @@
+export { ErrorField, ErrorFieldProps } from './ErrorField'
diff --git a/src/components/form/finalForm/Field/Field.tsx b/src/form/Field/Field.tsx
similarity index 72%
rename from src/components/form/finalForm/Field/Field.tsx
rename to src/form/Field/Field.tsx
index e68cbc444..ef27f4edb 100644
--- a/src/components/form/finalForm/Field/Field.tsx
+++ b/src/form/Field/Field.tsx
@@ -6,13 +6,14 @@ import {
   useForm,
 } from 'react-final-form'
 
-import { Meta } from '../../../../metaPath/metaPath'
-import { Omit } from '../../../../util'
-import { FormControl, FormControlProps } from '../../../FormControl'
+import { FormControl, FormControlProps } from '../../components/FormControl'
+import { Meta } from '../../metaPath/metaPath'
+import { Omit } from '../../util'
 
 import { getFieldError } from './util'
 
-export interface RenderProps<E extends HTMLElement = HTMLElement> extends FinalRenderProps<E> {
+export interface RenderProps<FieldValue = any, Element extends HTMLElement = HTMLElement>
+  extends FinalRenderProps<FieldValue, Element> {
   hasError?: boolean
 }
 
@@ -26,14 +27,14 @@ type PickedFinalFieldProps =
   | 'validate'
   | 'value'
 
-export interface FieldProps<T = any>
+export interface FieldProps<FieldValue = any, Element extends HTMLElement = HTMLElement>
   extends Omit<FormControlProps, 'name'>,
-    Pick<FinalFieldProps<HTMLElement>, PickedFinalFieldProps> {
-  name: string | Meta<T>
+    Pick<FinalFieldProps<FieldValue, Element>, PickedFinalFieldProps> {
+  name: string | Meta<FieldValue>
   hasWrapper?: boolean
   onChange?: any
   type?: string
-  render(props: RenderProps): React.ReactNode
+  render(props: RenderProps<FieldValue, Element>): React.ReactNode
 
   /**
    * Converts the field value to another before sending it to submit handler.
@@ -43,7 +44,9 @@ export interface FieldProps<T = any>
   convert?(value: any): any
 }
 
-export function Field<T = any>(props: FieldProps<T>) {
+export function Field<FieldValue = any, Element extends HTMLElement = HTMLElement>(
+  props: FieldProps<FieldValue, Element>
+) {
   const form = useForm()
 
   useEffect(() => {
@@ -63,11 +66,11 @@ export function Field<T = any>(props: FieldProps<T>) {
     if (typeof props.name === 'string') {
       return props.name
     } else {
-      return (props.name as Meta<T>).absolutePath()
+      return (props.name as Meta<FieldValue>).absolutePath()
     }
   }
 
-  const renderComponent = (fieldProps: FinalRenderProps<HTMLElement> & { custom: any }) => {
+  const renderComponent = (fieldProps: FinalRenderProps<FieldValue, Element> & { custom: any }) => {
     const customOnChange = value => {
       // External onChange prop is killed by final-form, so we merge the external and the internal one
       fieldProps.input.onChange(value)
diff --git a/src/components/form/finalForm/Field/util.ts b/src/form/Field/util.ts
similarity index 90%
rename from src/components/form/finalForm/Field/util.ts
rename to src/form/Field/util.ts
index f0a355bf1..b82c29453 100644
--- a/src/components/form/finalForm/Field/util.ts
+++ b/src/form/Field/util.ts
@@ -1,6 +1,6 @@
 import { FieldRenderProps } from 'react-final-form'
 
-import { Omit } from '../../../../util'
+import { Omit } from '../../util'
 
 import { FieldProps } from './Field'
 
@@ -9,7 +9,7 @@ import { FieldProps } from './Field'
  *
  * @param fieldProps The react-final-form field render props.
  */
-export const getFieldError = (fieldProps: FieldRenderProps<HTMLElement>): any => {
+export const getFieldError = (fieldProps: FieldRenderProps<any, HTMLElement>): any => {
   const { meta } = fieldProps
   return (meta.touched && meta.error) || (!meta.dirtySinceLastSubmit && meta.submitError)
 }
diff --git a/src/components/form/finalForm/Field/withField.tsx b/src/form/Field/withField.tsx
similarity index 94%
rename from src/components/form/finalForm/Field/withField.tsx
rename to src/form/Field/withField.tsx
index 0140bfa34..9a24f4dbb 100644
--- a/src/components/form/finalForm/Field/withField.tsx
+++ b/src/form/Field/withField.tsx
@@ -1,7 +1,7 @@
 import hoistNonReactStatics = require('hoist-non-react-statics')
 import React from 'react'
 
-import { InputStatus } from '../../input/TextInput'
+import { InputStatus } from '../../components/TextInput'
 
 import { Field, FieldProps, RenderProps } from './Field'
 import { BaseFieldProps, extractInputProps } from './index'
diff --git a/src/components/form/finalForm/Form/Form.stories.tsx b/src/form/Form/Form.stories.tsx
similarity index 63%
rename from src/components/form/finalForm/Form/Form.stories.tsx
rename to src/form/Form/Form.stories.tsx
index d6870a797..c5a1ef768 100644
--- a/src/components/form/finalForm/Form/Form.stories.tsx
+++ b/src/form/Form/Form.stories.tsx
@@ -3,12 +3,11 @@ import { storiesOf } from '@storybook/react'
 import React from 'react'
 import { FormRenderProps } from 'react-final-form'
 
-import { Flow, VFlow } from '../../../Flow'
-import { CheckboxField } from '../../field/CheckboxField/CheckboxField'
-import { CpfField } from '../../field/MaskedField/maskedFields'
-import { RadioField } from '../../field/RadioField/RadioField'
-import { TextAreaField } from '../../field/TextAreaField/TextAreaField'
-import { TextField } from '../../field/TextField/TextField'
+import { Flow, VFlow } from '../../components/Flow'
+import { CheckboxField } from '../field/CheckboxField'
+import { RadioField } from '../field/RadioField'
+import { TextAreaField } from '../field/TextAreaField'
+import { TextField } from '../field/TextField'
 import { SubmitButton } from '../SubmitButton'
 
 import { Form } from './Form'
@@ -17,16 +16,16 @@ storiesOf('Form|Form', module).add('default', () => {
   const validate = form => {
     const errors: any = {}
 
-    if (!form.nome) {
-      errors.nome = 'Preenchimento obrigatório.'
+    if (!form.name) {
+      errors.name = 'Required field'
     }
 
     if (!form.cpf) {
-      errors.cpf = 'Preenchimento obrigatório.'
+      errors.cpf = 'Required field'
     }
 
     if (!form.text) {
-      errors.text = 'Preenchimento obrigatório.'
+      errors.text = 'Required field'
     }
 
     return errors
@@ -35,8 +34,7 @@ storiesOf('Form|Form', module).add('default', () => {
   const renderForm = (props: FormRenderProps) => (
     <form onSubmit={props.handleSubmit}>
       <VFlow>
-        <TextField name='nome' label='Nome' required />
-        <CpfField name='cpf' label='CPF' required />
+        <TextField name='name' label='Name' required />
         <TextAreaField name='text' label='Text' maxLength={100} required />
         <Flow>
           <RadioField name='radio' label='Option1' value='1' />
diff --git a/src/components/form/finalForm/Form/Form.tsx b/src/form/Form/Form.tsx
similarity index 76%
rename from src/components/form/finalForm/Form/Form.tsx
rename to src/form/Form/Form.tsx
index 3ef18504d..d8b876256 100644
--- a/src/components/form/finalForm/Form/Form.tsx
+++ b/src/form/Form/Form.tsx
@@ -4,21 +4,21 @@ import setFieldData from 'final-form-set-field-data'
 import React from 'react'
 import { Form as FinalForm, FormProps as FinalFormProps, FormRenderProps } from 'react-final-form'
 
-import { isEmpty, isPromise } from '../../../../util'
+import { isEmpty, isPromise } from '../../util'
 
 export type ResultType = object | Promise<object | undefined> | undefined | void
 
-export interface FormProps extends FinalFormProps {
+export interface FormProps<FormValues> extends FinalFormProps<FormValues> {
   focusOnError?: boolean
   transformResult?(result: ResultType): ResultType
-  onSubmitSucceeded?(formState: FormState): void
-  onSubmitFailed?(formState: FormState): void
+  onSubmitSucceeded?(formState: FormState<FormValues>): void
+  onSubmitFailed?(formState: FormState<FormValues>): void
 }
 
 const focusOnErrorDecorator = createFocusOnErrorDecorator()
 
-export class Form extends React.Component<FormProps> {
-  static defaultProps: Partial<FormProps> = {
+export class Form<FormValues extends object = any> extends React.Component<FormProps<FormValues>> {
+  static defaultProps: Partial<FormProps<any>> = {
     focusOnError: true,
     decorators: [],
     transformResult: result => result,
@@ -33,7 +33,7 @@ export class Form extends React.Component<FormProps> {
     const mutators = { ...this.props.mutators, setFieldData: setFieldData.default || setFieldData }
 
     return (
-      <FinalForm
+      <FinalForm<FormValues>
         {...this.props}
         onSubmit={this.onSubmit}
         render={this.renderForm}
@@ -43,7 +43,7 @@ export class Form extends React.Component<FormProps> {
     )
   }
 
-  private renderForm = (props: FormRenderProps) => (
+  private renderForm = (props: FormRenderProps<FormValues>) => (
     <>
       {this.props.render({
         ...props,
@@ -52,7 +52,7 @@ export class Form extends React.Component<FormProps> {
     </>
   )
 
-  private handleSubmit = (formProps: FormRenderProps) => event => {
+  private handleSubmit = (formProps: FormRenderProps<FormValues>) => event => {
     const { onSubmitFailed } = this.props
     if (onSubmitFailed && !isEmpty(formProps.errors)) {
       setTimeout(() => onSubmitFailed(formProps.form.getState()))
@@ -60,7 +60,7 @@ export class Form extends React.Component<FormProps> {
     return formProps.handleSubmit(event)
   }
 
-  private getConvertedValues = (values: Object, form: FormApi) => {
+  private getConvertedValues = (values: FormValues, form: FormApi<FormValues>) => {
     let newValues = values
 
     for (const field of form.getRegisteredFields()) {
@@ -68,14 +68,14 @@ export class Form extends React.Component<FormProps> {
       const convert = fieldState.data ? fieldState.data.convert : null
       if (convert) {
         const fieldValue = getIn(values, field)
-        newValues = setIn(newValues, field, convert(fieldValue))
+        newValues = setIn(newValues, field, convert(fieldValue)) as FormValues
       }
     }
 
     return newValues
   }
 
-  private onSubmit = (values: Object, form: FormApi) => {
+  private onSubmit = (values: FormValues, form: FormApi<FormValues>) => {
     const { onSubmit, transformResult } = this.props
 
     const newValues = this.getConvertedValues(values, form)
@@ -94,7 +94,7 @@ export class Form extends React.Component<FormProps> {
     return ret
   }
 
-  private emitSubmitEvents = (submitResult: ResultType, form: FormApi) => {
+  private emitSubmitEvents = (submitResult: ResultType, form: FormApi<FormValues>) => {
     const { onSubmitFailed, onSubmitSucceeded } = this.props
 
     if (!submitResult && onSubmitSucceeded) {
diff --git a/src/form/Form/index.ts b/src/form/Form/index.ts
new file mode 100644
index 000000000..df1368e80
--- /dev/null
+++ b/src/form/Form/index.ts
@@ -0,0 +1,1 @@
+export { Form, FormProps } from './Form'
diff --git a/src/components/form/finalForm/SubmitButton/SubmitButton.test.tsx b/src/form/SubmitButton/SubmitButton.test.tsx
similarity index 100%
rename from src/components/form/finalForm/SubmitButton/SubmitButton.test.tsx
rename to src/form/SubmitButton/SubmitButton.test.tsx
diff --git a/src/components/form/finalForm/SubmitButton/SubmitButton.tsx b/src/form/SubmitButton/SubmitButton.tsx
similarity index 91%
rename from src/components/form/finalForm/SubmitButton/SubmitButton.tsx
rename to src/form/SubmitButton/SubmitButton.tsx
index 681dc2d53..a8d8e318d 100644
--- a/src/components/form/finalForm/SubmitButton/SubmitButton.tsx
+++ b/src/form/SubmitButton/SubmitButton.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { FormSpy } from 'react-final-form'
 
-import { Button, ButtonProps } from '../../../Button'
+import { Button, ButtonProps } from '../../components/Button'
 
 export interface SubmitButtonProps extends ButtonProps {
   handleSubmit: (event?: React.SyntheticEvent<HTMLFormElement>) => void
diff --git a/src/components/form/finalForm/SubmitButton/__snapshots__/SubmitButton.test.tsx.snap b/src/form/SubmitButton/__snapshots__/SubmitButton.test.tsx.snap
similarity index 100%
rename from src/components/form/finalForm/SubmitButton/__snapshots__/SubmitButton.test.tsx.snap
rename to src/form/SubmitButton/__snapshots__/SubmitButton.test.tsx.snap
diff --git a/src/components/form/finalForm/SubmitButton/index.ts b/src/form/SubmitButton/index.ts
similarity index 100%
rename from src/components/form/finalForm/SubmitButton/index.ts
rename to src/form/SubmitButton/index.ts
diff --git a/src/components/form/field/CheckboxField/CheckboxField.stories.tsx b/src/form/field/CheckboxField/CheckboxField.stories.tsx
similarity index 91%
rename from src/components/form/field/CheckboxField/CheckboxField.stories.tsx
rename to src/form/field/CheckboxField/CheckboxField.stories.tsx
index cb510aade..aebf439c6 100644
--- a/src/components/form/field/CheckboxField/CheckboxField.stories.tsx
+++ b/src/form/field/CheckboxField/CheckboxField.stories.tsx
@@ -3,7 +3,7 @@ import { boolean, text } from '@storybook/addon-knobs'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { withForm } from '../../../../stories-addons'
+import { withForm } from '../../../stories-addons'
 
 import { CheckboxField } from './CheckboxField'
 
diff --git a/src/form/field/CheckboxField/CheckboxField.tsx b/src/form/field/CheckboxField/CheckboxField.tsx
new file mode 100644
index 000000000..6dc9aa64a
--- /dev/null
+++ b/src/form/field/CheckboxField/CheckboxField.tsx
@@ -0,0 +1,14 @@
+import React from 'react'
+
+import { Checkbox, CheckboxProps } from '../../../components/Checkbox'
+import { BaseFieldProps, extractInputProps, Field, RenderProps } from '../../Field'
+
+export interface CheckboxFieldProps extends BaseFieldProps<CheckboxProps> {}
+
+export function CheckboxField(props: CheckboxFieldProps) {
+  const renderCheck = (fieldProps: RenderProps) => (
+    <Checkbox {...extractInputProps(props)} {...fieldProps.input} label={props.label} />
+  )
+
+  return <Field {...props} type='checkbox' hasWrapper={false} render={renderCheck} />
+}
diff --git a/src/components/form/field/CheckboxField/index.ts b/src/form/field/CheckboxField/index.ts
similarity index 100%
rename from src/components/form/field/CheckboxField/index.ts
rename to src/form/field/CheckboxField/index.ts
diff --git a/src/components/form/field/DateField/DateField.stories.tsx b/src/form/field/DateField/DateField.stories.tsx
similarity index 87%
rename from src/components/form/field/DateField/DateField.stories.tsx
rename to src/form/field/DateField/DateField.stories.tsx
index 016e58c6c..a8dc8c640 100644
--- a/src/components/form/field/DateField/DateField.stories.tsx
+++ b/src/form/field/DateField/DateField.stories.tsx
@@ -3,8 +3,8 @@ import { boolean } from '@storybook/addon-knobs'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { withForm } from '../../../../stories-addons/withForm'
-import { DateInput } from '../../input/DateInput/DateInput'
+import { DateInput } from '../../../components/DateInput'
+import { withForm } from '../../../stories-addons/withForm'
 
 import { DateField } from './DateField'
 
diff --git a/src/components/form/field/DateField/DateField.tsx b/src/form/field/DateField/DateField.tsx
similarity index 80%
rename from src/components/form/field/DateField/DateField.tsx
rename to src/form/field/DateField/DateField.tsx
index 4b27d1a44..9a87bc3db 100644
--- a/src/components/form/field/DateField/DateField.tsx
+++ b/src/form/field/DateField/DateField.tsx
@@ -1,5 +1,5 @@
-import { BaseFieldProps, withField } from '../../finalForm/Field'
-import { DatePickerInput, DatePickerInputProps } from '../../input/DateInput'
+import { DatePickerInput, DatePickerInputProps } from '../../../components/DateInput'
+import { BaseFieldProps, withField } from '../../Field'
 
 export const parse = (value: Date): string => {
   if (!value) {
diff --git a/src/components/form/field/HiddenField/HiddenField.tsx b/src/form/field/HiddenField/HiddenField.tsx
similarity index 50%
rename from src/components/form/field/HiddenField/HiddenField.tsx
rename to src/form/field/HiddenField/HiddenField.tsx
index 8d2a91931..df535d809 100644
--- a/src/components/form/field/HiddenField/HiddenField.tsx
+++ b/src/form/field/HiddenField/HiddenField.tsx
@@ -1,5 +1,5 @@
-import { BaseFieldProps, withField } from '../../finalForm/Field'
-import { Input, InputProps } from '../../input/Input/Input'
+import { Input, InputProps } from '../../../components/Input'
+import { BaseFieldProps, withField } from '../../Field'
 
 export type HiddenFieldProps = BaseFieldProps<InputProps>
 
diff --git a/src/form/field/MaskedField/MaskedField.tsx b/src/form/field/MaskedField/MaskedField.tsx
new file mode 100644
index 000000000..0f7edd0db
--- /dev/null
+++ b/src/form/field/MaskedField/MaskedField.tsx
@@ -0,0 +1,6 @@
+import { MaskedInput, MaskedInputProps } from '../../../components/MaskedInput'
+import { BaseFieldProps, withField } from '../../Field'
+
+export type MaskedFieldProps = BaseFieldProps<MaskedInputProps>
+
+export const MaskedField = withField(MaskedInput)
diff --git a/src/components/form/field/MaskedField/__snapshots__/MaskedField.test.tsx.snap b/src/form/field/MaskedField/__snapshots__/MaskedField.test.tsx.snap
similarity index 100%
rename from src/components/form/field/MaskedField/__snapshots__/MaskedField.test.tsx.snap
rename to src/form/field/MaskedField/__snapshots__/MaskedField.test.tsx.snap
diff --git a/src/components/form/field/MaskedField/index.ts b/src/form/field/MaskedField/index.ts
similarity index 66%
rename from src/components/form/field/MaskedField/index.ts
rename to src/form/field/MaskedField/index.ts
index f7a2aa40d..b5c668e5f 100644
--- a/src/components/form/field/MaskedField/index.ts
+++ b/src/form/field/MaskedField/index.ts
@@ -1,2 +1,1 @@
 export { MaskedField, MaskedFieldProps } from './MaskedField'
-export * from './maskedFields'
diff --git a/src/components/form/field/MonthField/MonthField.stories.tsx b/src/form/field/MonthField/MonthField.stories.tsx
similarity index 78%
rename from src/components/form/field/MonthField/MonthField.stories.tsx
rename to src/form/field/MonthField/MonthField.stories.tsx
index 1f6fcfe81..db5ed3e70 100644
--- a/src/components/form/field/MonthField/MonthField.stories.tsx
+++ b/src/form/field/MonthField/MonthField.stories.tsx
@@ -2,8 +2,8 @@ import { action } from '@storybook/addon-actions'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { withForm } from '../../../../stories-addons'
-import { MonthPickerInput } from '../../../MonthPicker'
+import { MonthPickerInput } from '../../../components'
+import { withForm } from '../../../stories-addons'
 
 import { MonthField } from './MonthField'
 
diff --git a/src/components/form/field/MonthField/MonthField.tsx b/src/form/field/MonthField/MonthField.tsx
similarity index 69%
rename from src/components/form/field/MonthField/MonthField.tsx
rename to src/form/field/MonthField/MonthField.tsx
index b2c3012a5..663e36ed1 100644
--- a/src/components/form/field/MonthField/MonthField.tsx
+++ b/src/form/field/MonthField/MonthField.tsx
@@ -1,5 +1,5 @@
-import { MonthPickerInput, MonthPickerInputProps } from '../../../MonthPicker'
-import { BaseFieldProps, withField } from '../../finalForm/Field'
+import { MonthPickerInput, MonthPickerInputProps } from '../../../components/MonthPicker'
+import { BaseFieldProps, withField } from '../../Field'
 
 export type MonthFieldProps = BaseFieldProps<MonthPickerInputProps>
 
diff --git a/src/components/form/field/MonthField/__snapshots__/MonthField.test.tsx.snap b/src/form/field/MonthField/__snapshots__/MonthField.test.tsx.snap
similarity index 100%
rename from src/components/form/field/MonthField/__snapshots__/MonthField.test.tsx.snap
rename to src/form/field/MonthField/__snapshots__/MonthField.test.tsx.snap
diff --git a/src/components/form/field/MonthField/index.ts b/src/form/field/MonthField/index.ts
similarity index 100%
rename from src/components/form/field/MonthField/index.ts
rename to src/form/field/MonthField/index.ts
diff --git a/src/components/form/field/NumberField/NumberField.stories.tsx b/src/form/field/NumberField/NumberField.stories.tsx
similarity index 85%
rename from src/components/form/field/NumberField/NumberField.stories.tsx
rename to src/form/field/NumberField/NumberField.stories.tsx
index 647b632b8..a4661f980 100644
--- a/src/components/form/field/NumberField/NumberField.stories.tsx
+++ b/src/form/field/NumberField/NumberField.stories.tsx
@@ -2,7 +2,7 @@ import { action } from '@storybook/addon-actions'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { withForm } from '../../../../stories-addons/withForm'
+import { withForm } from '../../../stories-addons'
 
 import { NumberField } from './NumberField'
 
diff --git a/src/components/form/field/NumberField/NumberField.tsx b/src/form/field/NumberField/NumberField.tsx
similarity index 74%
rename from src/components/form/field/NumberField/NumberField.tsx
rename to src/form/field/NumberField/NumberField.tsx
index d26390ee0..3c06b63f3 100644
--- a/src/components/form/field/NumberField/NumberField.tsx
+++ b/src/form/field/NumberField/NumberField.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { BaseFieldProps } from '../../finalForm/Field'
-import { TextInputProps } from '../../input/TextInput/TextInput'
+import { TextInputProps } from '../../../components/TextInput'
+import { BaseFieldProps } from '../../Field'
 import { TextField } from '../TextField/TextField'
 
 export const parse = value => value.replace(/[^\d]/g, '')
diff --git a/src/components/form/field/NumberField/__snapshots__/NumberField.test.tsx.snap b/src/form/field/NumberField/__snapshots__/NumberField.test.tsx.snap
similarity index 100%
rename from src/components/form/field/NumberField/__snapshots__/NumberField.test.tsx.snap
rename to src/form/field/NumberField/__snapshots__/NumberField.test.tsx.snap
diff --git a/src/components/form/field/NumberField/index.ts b/src/form/field/NumberField/index.ts
similarity index 100%
rename from src/components/form/field/NumberField/index.ts
rename to src/form/field/NumberField/index.ts
diff --git a/src/components/form/field/RadioField/RadioField.stories.tsx b/src/form/field/RadioField/RadioField.stories.tsx
similarity index 87%
rename from src/components/form/field/RadioField/RadioField.stories.tsx
rename to src/form/field/RadioField/RadioField.stories.tsx
index b843a25cc..4058ffe1b 100644
--- a/src/components/form/field/RadioField/RadioField.stories.tsx
+++ b/src/form/field/RadioField/RadioField.stories.tsx
@@ -3,8 +3,8 @@ import { boolean, text } from '@storybook/addon-knobs'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { withForm } from '../../../../stories-addons/withForm'
-import { Flow } from '../../../Flow'
+import { Flow } from '../../../components/Flow'
+import { withForm } from '../../../stories-addons/withForm'
 
 import { RadioField } from './RadioField'
 
diff --git a/src/components/form/field/RadioField/RadioField.tsx b/src/form/field/RadioField/RadioField.tsx
similarity index 85%
rename from src/components/form/field/RadioField/RadioField.tsx
rename to src/form/field/RadioField/RadioField.tsx
index 0e36b9a92..0ca789a91 100644
--- a/src/components/form/field/RadioField/RadioField.tsx
+++ b/src/form/field/RadioField/RadioField.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { BaseFieldProps, extractInputProps, Field, RenderProps } from '../../finalForm/Field'
-import { Radio, RadioProps } from '../../input/Radio'
+import { Radio, RadioProps } from '../../../components/Radio'
+import { BaseFieldProps, extractInputProps, Field, RenderProps } from '../../Field'
 
 export interface RadioFieldProps extends BaseFieldProps<RadioProps> {}
 
diff --git a/src/components/form/field/RadioField/index.ts b/src/form/field/RadioField/index.ts
similarity index 100%
rename from src/components/form/field/RadioField/index.ts
rename to src/form/field/RadioField/index.ts
diff --git a/src/components/form/field/SelectField/SelectField.stories.tsx b/src/form/field/SelectField/SelectField.stories.tsx
similarity index 98%
rename from src/components/form/field/SelectField/SelectField.stories.tsx
rename to src/form/field/SelectField/SelectField.stories.tsx
index 566747573..43ef04de2 100644
--- a/src/components/form/field/SelectField/SelectField.stories.tsx
+++ b/src/form/field/SelectField/SelectField.stories.tsx
@@ -3,7 +3,6 @@ import { boolean, text } from '@storybook/addon-knobs'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { withForm } from '../../../../stories-addons'
 import {
   DefaultItemType,
   defaultSelectFilter,
@@ -12,7 +11,8 @@ import {
   SelectMenuItem,
   SelectMulti,
   SelectSingle,
-} from '../../input/Select'
+} from '../../../components/Select'
+import { withForm } from '../../../stories-addons'
 
 import { SelectField } from './SelectField'
 
diff --git a/src/components/form/field/SelectField/SelectField.tsx b/src/form/field/SelectField/SelectField.tsx
similarity index 87%
rename from src/components/form/field/SelectField/SelectField.tsx
rename to src/form/field/SelectField/SelectField.tsx
index ce062e711..0ee7e112a 100644
--- a/src/components/form/field/SelectField/SelectField.tsx
+++ b/src/form/field/SelectField/SelectField.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { BaseFieldProps, extractInputProps, Field, RenderProps } from '../../finalForm/Field'
-import { DefaultItemType, Select, SelectProps } from '../../input/Select'
+import { DefaultItemType, Select, SelectProps } from '../../../components/Select'
+import { BaseFieldProps, extractInputProps, Field, RenderProps } from '../../Field'
 
 export interface SelectFieldProps<T = DefaultItemType> extends BaseFieldProps<SelectProps<T>, T | T[]> {}
 
diff --git a/src/components/form/field/SelectField/__snapshots__/SelectField.test.tsx.snap b/src/form/field/SelectField/__snapshots__/SelectField.test.tsx.snap
similarity index 100%
rename from src/components/form/field/SelectField/__snapshots__/SelectField.test.tsx.snap
rename to src/form/field/SelectField/__snapshots__/SelectField.test.tsx.snap
diff --git a/src/components/form/field/SelectField/index.ts b/src/form/field/SelectField/index.ts
similarity index 100%
rename from src/components/form/field/SelectField/index.ts
rename to src/form/field/SelectField/index.ts
diff --git a/src/components/form/field/SwitchField/SwitchField.stories.tsx b/src/form/field/SwitchField/SwitchField.stories.tsx
similarity index 88%
rename from src/components/form/field/SwitchField/SwitchField.stories.tsx
rename to src/form/field/SwitchField/SwitchField.stories.tsx
index 12f20510a..33130b7c9 100644
--- a/src/components/form/field/SwitchField/SwitchField.stories.tsx
+++ b/src/form/field/SwitchField/SwitchField.stories.tsx
@@ -3,7 +3,7 @@ import { boolean, text } from '@storybook/addon-knobs'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { withForm } from '../../../../stories-addons/withForm'
+import { withForm } from '../../../stories-addons/withForm'
 
 import { SwitchField } from './SwitchField'
 
diff --git a/src/components/form/field/SwitchField/SwitchField.tsx b/src/form/field/SwitchField/SwitchField.tsx
similarity index 84%
rename from src/components/form/field/SwitchField/SwitchField.tsx
rename to src/form/field/SwitchField/SwitchField.tsx
index 842d65d99..0127f15fd 100644
--- a/src/components/form/field/SwitchField/SwitchField.tsx
+++ b/src/form/field/SwitchField/SwitchField.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { BaseFieldProps, extractInputProps, Field, RenderProps } from '../../finalForm/Field'
-import { Switch, SwitchProps } from '../../input/Switch/Switch'
+import { Switch, SwitchProps } from '../../../components/Switch'
+import { BaseFieldProps, extractInputProps, Field, RenderProps } from '../../Field'
 
 export interface SwitchFieldProps extends BaseFieldProps<SwitchProps> {
   name: string
diff --git a/src/components/form/field/SwitchField/index.ts b/src/form/field/SwitchField/index.ts
similarity index 100%
rename from src/components/form/field/SwitchField/index.ts
rename to src/form/field/SwitchField/index.ts
diff --git a/src/components/form/field/TextAreaField/TextAreaField.stories.tsx b/src/form/field/TextAreaField/TextAreaField.stories.tsx
similarity index 89%
rename from src/components/form/field/TextAreaField/TextAreaField.stories.tsx
rename to src/form/field/TextAreaField/TextAreaField.stories.tsx
index 9109278c6..544f10b85 100644
--- a/src/components/form/field/TextAreaField/TextAreaField.stories.tsx
+++ b/src/form/field/TextAreaField/TextAreaField.stories.tsx
@@ -3,7 +3,7 @@ import { boolean, number } from '@storybook/addon-knobs'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { withForm } from '../../../../stories-addons/withForm'
+import { withForm } from '../../../stories-addons/withForm'
 
 import { TextAreaField } from './TextAreaField'
 
diff --git a/src/components/form/field/TextAreaField/TextAreaField.test.tsx b/src/form/field/TextAreaField/TextAreaField.test.tsx
similarity index 100%
rename from src/components/form/field/TextAreaField/TextAreaField.test.tsx
rename to src/form/field/TextAreaField/TextAreaField.test.tsx
diff --git a/src/form/field/TextAreaField/TextAreaField.tsx b/src/form/field/TextAreaField/TextAreaField.tsx
new file mode 100644
index 000000000..5a87dc7c3
--- /dev/null
+++ b/src/form/field/TextAreaField/TextAreaField.tsx
@@ -0,0 +1,6 @@
+import { TextArea, TextAreaProps } from '../../../components/TextArea'
+import { BaseFieldProps, withField } from '../../Field'
+
+export type TextAreaFieldProps = BaseFieldProps<TextAreaProps>
+
+export const TextAreaField = withField(TextArea)
diff --git a/src/components/form/field/TextAreaField/__snapshots__/TextAreaField.test.tsx.snap b/src/form/field/TextAreaField/__snapshots__/TextAreaField.test.tsx.snap
similarity index 100%
rename from src/components/form/field/TextAreaField/__snapshots__/TextAreaField.test.tsx.snap
rename to src/form/field/TextAreaField/__snapshots__/TextAreaField.test.tsx.snap
diff --git a/src/components/form/field/TextAreaField/index.ts b/src/form/field/TextAreaField/index.ts
similarity index 100%
rename from src/components/form/field/TextAreaField/index.ts
rename to src/form/field/TextAreaField/index.ts
diff --git a/src/components/form/field/TextField/TextField.stories.tsx b/src/form/field/TextField/TextField.stories.tsx
similarity index 94%
rename from src/components/form/field/TextField/TextField.stories.tsx
rename to src/form/field/TextField/TextField.stories.tsx
index 215cc3c21..977a3d9a1 100644
--- a/src/components/form/field/TextField/TextField.stories.tsx
+++ b/src/form/field/TextField/TextField.stories.tsx
@@ -3,7 +3,7 @@ import { boolean, select } from '@storybook/addon-knobs'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { withForm } from '../../../../stories-addons/withForm'
+import { withForm } from '../../../stories-addons'
 
 import { TextField } from './TextField'
 
diff --git a/src/form/field/TextField/TextField.tsx b/src/form/field/TextField/TextField.tsx
new file mode 100644
index 000000000..1bf692c71
--- /dev/null
+++ b/src/form/field/TextField/TextField.tsx
@@ -0,0 +1,6 @@
+import { TextInput, TextInputProps } from '../../../components/TextInput'
+import { BaseFieldProps, withField } from '../../Field'
+
+export type TextFieldProps = BaseFieldProps<TextInputProps, string>
+
+export const TextField = withField<string, TextInputProps>(TextInput)
diff --git a/src/components/form/field/TextField/__snapshots__/TextField.test.tsx.snap b/src/form/field/TextField/__snapshots__/TextField.test.tsx.snap
similarity index 100%
rename from src/components/form/field/TextField/__snapshots__/TextField.test.tsx.snap
rename to src/form/field/TextField/__snapshots__/TextField.test.tsx.snap
diff --git a/src/components/form/field/TextField/index.ts b/src/form/field/TextField/index.ts
similarity index 100%
rename from src/components/form/field/TextField/index.ts
rename to src/form/field/TextField/index.ts
diff --git a/src/form/field/TimeField/TimeField.stories.tsx b/src/form/field/TimeField/TimeField.stories.tsx
new file mode 100644
index 000000000..2d3bfdd95
--- /dev/null
+++ b/src/form/field/TimeField/TimeField.stories.tsx
@@ -0,0 +1,21 @@
+import { action } from '@storybook/addon-actions'
+import { boolean } from '@storybook/addon-knobs'
+import { storiesOf } from '@storybook/react'
+import React from 'react'
+
+import { withForm } from '../../../stories-addons'
+
+import { TimeField } from './TimeField'
+
+storiesOf('Form|TimeField', module)
+  .addDecorator(withForm())
+  .add('default', () => (
+    <TimeField
+      name='time'
+      label='Time (hour:minute)'
+      disabled={boolean('disabled', false)}
+      guide={boolean('guide', true)}
+      keepCharPositions={boolean('keepCharPositions', false)}
+      onChange={action('changed')}
+    />
+  ))
diff --git a/src/components/form/field/MaskedField/maskedFields/TimeField.tsx b/src/form/field/TimeField/TimeField.tsx
similarity index 67%
rename from src/components/form/field/MaskedField/maskedFields/TimeField.tsx
rename to src/form/field/TimeField/TimeField.tsx
index b903c54d9..75993c093 100644
--- a/src/components/form/field/MaskedField/maskedFields/TimeField.tsx
+++ b/src/form/field/TimeField/TimeField.tsx
@@ -1,5 +1,5 @@
-import { BaseFieldProps, withField } from '../../../finalForm/Field'
-import { TimeInput, TimeInputProps } from '../../../input/TimeInput'
+import { TimeInput, TimeInputProps } from '../../../components/TimeInput'
+import { BaseFieldProps, withField } from '../../Field'
 
 export const format = (value: string) => {
   // Omit seconds in case the initial field value is in format 'HH:mm:ss'
diff --git a/src/form/field/TimeField/index.ts b/src/form/field/TimeField/index.ts
new file mode 100644
index 000000000..a0bc8e951
--- /dev/null
+++ b/src/form/field/TimeField/index.ts
@@ -0,0 +1,1 @@
+export * from './TimeField'
diff --git a/src/form/index.ts b/src/form/index.ts
new file mode 100644
index 000000000..9e987d1f1
--- /dev/null
+++ b/src/form/index.ts
@@ -0,0 +1,16 @@
+export * from './ErrorField'
+export * from './Field'
+export * from './Form'
+export * from './SubmitButton'
+
+export * from './field/CheckboxField'
+export * from './field/DateField'
+export * from './field/HiddenField'
+export * from './field/MaskedField'
+export * from './field/NumberField'
+export * from './field/RadioField'
+export * from './field/SelectField'
+export * from './field/SwitchField'
+export * from './field/TextField'
+export * from './field/TextAreaField'
+export * from './field/MonthField'
diff --git a/src/index.ts b/src/index.ts
index f4fc268df..0647797e6 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,4 +1,5 @@
 export * from './components'
+export * from './form'
 export * from './locale'
 export * from './metaPath'
 export * from './styles'
diff --git a/src/stories-addons/withForm.tsx b/src/stories-addons/withForm.tsx
index 31ac82599..5160641cf 100644
--- a/src/stories-addons/withForm.tsx
+++ b/src/stories-addons/withForm.tsx
@@ -2,7 +2,7 @@ import { Renderable, RenderFunction } from '@storybook/react'
 import React from 'react'
 import { FormProps } from 'react-final-form'
 
-import { Form } from '../components/form/finalForm/Form'
+import { Form } from '../form/Form'
 
 // tslint:disable jsx-no-lambda
 
diff --git a/src/util/masks.ts b/src/util/masks.ts
deleted file mode 100644
index d6b47c881..000000000
--- a/src/util/masks.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-export const onlyNumbers = (value: string) => value && value.replace(/[^\d]/g, '')
-
-export const masks = {
-    telefone: rawValue => {
-        if (!rawValue || rawValue.length < 11) {
-            return ['(', /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]
-        }
-        return ['(', /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]
-    },
-    cpf: [/\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, '-', /\d/, /\d/],
-    cep: [/\d/, /\d/, /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/],
-    time: [/\d/, /\d/, ':', /\d/, /\d/],
-    date: [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/],
-    cns: [/\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/],
-}
diff --git a/yarn.lock b/yarn.lock
index 5180d900f..ccba4f25e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1434,80 +1434,80 @@
   resolved "https://registry.yarnpkg.com/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz#8013f2af54a2b7d735f71560ff360d3a8176a87b"
   integrity sha512-vTCdPp/T/Q3oSqwHmZ5Kpa9oI7iLtGl3RQaA/NyLHikvcrPxACkkKVr/XzkSPJWXHRhKGzVvb0urJsbMlRxi1Q==
 
-"@storybook/addon-a11y@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/addon-a11y/-/addon-a11y-5.1.3.tgz#0b697b83b15118234f40e7877a6bdb72c5f7b790"
-  integrity sha512-0uok9autQGqzX0q1+PgYKZttE6WBCHdec0EWplyMyXnilfbad62bdVVtYVn4P65svrg5/vRmWNcKLfht/q0UNQ==
-  dependencies:
-    "@storybook/addons" "5.1.3"
-    "@storybook/api" "5.1.3"
-    "@storybook/client-logger" "5.1.3"
-    "@storybook/components" "5.1.3"
-    "@storybook/core-events" "5.1.3"
-    "@storybook/theming" "5.1.3"
+"@storybook/addon-a11y@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/addon-a11y/-/addon-a11y-5.1.8.tgz#f352fc75006d451f97778bb346773c17fc7c7e7f"
+  integrity sha512-yjoW5/Jin8LhC7im6bRP2bETsilSKTZClnmx4qqHPa+kZyu/mHispkpowkR2WrueuKEjWAyfBe1wvAMaLndFBA==
+  dependencies:
+    "@storybook/addons" "5.1.8"
+    "@storybook/api" "5.1.8"
+    "@storybook/client-logger" "5.1.8"
+    "@storybook/components" "5.1.8"
+    "@storybook/core-events" "5.1.8"
+    "@storybook/theming" "5.1.8"
     axe-core "^3.2.2"
     common-tags "^1.8.0"
     core-js "^3.0.1"
     global "^4.3.2"
     hoist-non-react-statics "^3.3.0"
     memoizerific "^1.11.3"
-    react "^16.8.4"
+    react "^16.8.3"
     react-redux "^7.0.2"
     react-sizeme "^2.5.2"
     redux "^4.0.1"
     util-deprecate "^1.0.2"
 
-"@storybook/addon-actions@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-5.1.3.tgz#2df95e91f6c2992ed0bec048fb5353b490d08218"
-  integrity sha512-ajOJ+hWvFFfj7GiLgV1auw9rmA9edUm1PP0fJxz2H1O8abqqOr+zVLFR15lxs2pFp1TCgRXTvQYiMj9ZxTZAwQ==
-  dependencies:
-    "@storybook/addons" "5.1.3"
-    "@storybook/api" "5.1.3"
-    "@storybook/components" "5.1.3"
-    "@storybook/core-events" "5.1.3"
-    "@storybook/theming" "5.1.3"
+"@storybook/addon-actions@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-5.1.8.tgz#98d6aff42fb7fa7477b4db6cf21da3ede18ede0d"
+  integrity sha512-p4d3B5jzYMuQn4n/owbpkrFLKvn0bjuwl6pFda4DNYnhiWtornKvOGb4g0Wjtz1Pw61tkb1PZN+OJuQ8imifjw==
+  dependencies:
+    "@storybook/addons" "5.1.8"
+    "@storybook/api" "5.1.8"
+    "@storybook/components" "5.1.8"
+    "@storybook/core-events" "5.1.8"
+    "@storybook/theming" "5.1.8"
     core-js "^3.0.1"
     fast-deep-equal "^2.0.1"
     global "^4.3.2"
     lodash "^4.17.11"
     polished "^3.3.1"
     prop-types "^15.7.2"
-    react "^16.8.4"
+    react "^16.8.3"
     react-inspector "^3.0.2"
     uuid "^3.3.2"
 
-"@storybook/addon-info@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/addon-info/-/addon-info-5.1.3.tgz#5e979edb69f5f7ac168b80cccaa35509a1ad3b0b"
-  integrity sha512-zI4s7ADtn+qxcqM/KmiF2kkMKL32YF1b2dp+ByBjLoUJIRw4sdkCyFgmX0Y2nQNd+UPGRlM0TIedSqoGjvAFXA==
+"@storybook/addon-info@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/addon-info/-/addon-info-5.1.8.tgz#9eeb69cc9a98b5250c7ce9a21abaef1366c3849f"
+  integrity sha512-5uucvM2lOhb+RaS0AR3bMdXGv7nOYTymx8Q6mrePGBsyKjt/7VozbTTqh1SvO1e+sDNKi20JRV3lWOYQ8F5brQ==
   dependencies:
-    "@storybook/addons" "5.1.3"
-    "@storybook/client-logger" "5.1.3"
-    "@storybook/components" "5.1.3"
-    "@storybook/theming" "5.1.3"
+    "@storybook/addons" "5.1.8"
+    "@storybook/client-logger" "5.1.8"
+    "@storybook/components" "5.1.8"
+    "@storybook/theming" "5.1.8"
     core-js "^3.0.1"
     global "^4.3.2"
     marksy "^7.0.0"
     nested-object-assign "^1.0.3"
     prop-types "^15.7.2"
-    react "^16.8.4"
+    react "^16.8.3"
     react-addons-create-fragment "^15.6.2"
     react-element-to-jsx-string "^14.0.2"
-    react-is "^16.8.4"
+    react-is "^16.8.3"
     react-lifecycles-compat "^3.0.4"
     util-deprecate "^1.0.2"
 
-"@storybook/addon-knobs@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-5.1.3.tgz#238fdd72193c1936453a6824570c0a9d240051cf"
-  integrity sha512-ug64vIxA/Ly2lc3LYIrOvy6Cq3qocQu4N2lZzvy+BY4aG5aYmgNJupVjQnQ6qLLiYJsGaPyjG5+74cudgE5Nrg==
-  dependencies:
-    "@storybook/addons" "5.1.3"
-    "@storybook/client-api" "5.1.3"
-    "@storybook/components" "5.1.3"
-    "@storybook/core-events" "5.1.3"
-    "@storybook/theming" "5.1.3"
+"@storybook/addon-knobs@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-5.1.8.tgz#f0b7cf1e14e647e2030055a8f9eb9e09e595fd5d"
+  integrity sha512-GCcjc3iO8YQOKdOaA1pr4INzNA3gU/0qIpYg0En3CbNH9LodfBha3l91G64AH06rCqhAYWp5D482kptKRaFxOA==
+  dependencies:
+    "@storybook/addons" "5.1.8"
+    "@storybook/client-api" "5.1.8"
+    "@storybook/components" "5.1.8"
+    "@storybook/core-events" "5.1.8"
+    "@storybook/theming" "5.1.8"
     copy-to-clipboard "^3.0.8"
     core-js "^3.0.1"
     escape-html "^1.0.3"
@@ -1520,68 +1520,68 @@
     react-lifecycles-compat "^3.0.4"
     react-select "^2.2.0"
 
-"@storybook/addons@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-5.1.3.tgz#43181aa927e81d9f1747ae5dcbe7dbabf113f978"
-  integrity sha512-/xfpU9hIl2JRks3mrWGF/PuP91sflVY+w46KLJuLKXRVGn0slO8ijGs+x+HHBuZZ5MjOW7BCSrQgFjPE8B5Vjg==
+"@storybook/addons@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-5.1.8.tgz#d4c9bacd5cce58c3375a3c5b3b3e47ab0cee2818"
+  integrity sha512-qV3NJyoxJWOb6E1pJXjrj4KJ77OHjNNC0tUzdiHPlWqc21Szu8AKIC7b3L6+fqwmZoAUg1XdtrynJwjXaNkVeQ==
   dependencies:
-    "@storybook/api" "5.1.3"
-    "@storybook/channels" "5.1.3"
-    "@storybook/client-logger" "5.1.3"
+    "@storybook/api" "5.1.8"
+    "@storybook/channels" "5.1.8"
+    "@storybook/client-logger" "5.1.8"
     core-js "^3.0.1"
     global "^4.3.2"
     util-deprecate "^1.0.2"
 
-"@storybook/api@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/api/-/api-5.1.3.tgz#db809a1a153d7bb86a494b18866c81093dfa0084"
-  integrity sha512-jL7aFaVodzzJ9GJnxW6vgm5PVoF859pjIukg9gsyp1aEvO5HpE+YelmAR6GdEH0JGxpk3UH8L+3V/W2zUOG9lA==
-  dependencies:
-    "@storybook/channels" "5.1.3"
-    "@storybook/client-logger" "5.1.3"
-    "@storybook/core-events" "5.1.3"
-    "@storybook/router" "5.1.3"
-    "@storybook/theming" "5.1.3"
+"@storybook/api@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/api/-/api-5.1.8.tgz#fb10fff22d063d3198549994b1af6994b49d0c5a"
+  integrity sha512-uNH97oW5GSqSpz3SPvonPERJgfWc+ApiAZFBDv5djS7/FSSvqGaPwnXuutwQoBwx3GX5tT0K2VSAstOXRMGIOA==
+  dependencies:
+    "@storybook/channels" "5.1.8"
+    "@storybook/client-logger" "5.1.8"
+    "@storybook/core-events" "5.1.8"
+    "@storybook/router" "5.1.8"
+    "@storybook/theming" "5.1.8"
     core-js "^3.0.1"
     fast-deep-equal "^2.0.1"
     global "^4.3.2"
     lodash "^4.17.11"
     memoizerific "^1.11.3"
     prop-types "^15.6.2"
-    react "^16.7.0"
+    react "^16.8.3"
     semver "^6.0.0"
     shallow-equal "^1.1.0"
     store2 "^2.7.1"
     telejson "^2.2.1"
     util-deprecate "^1.0.2"
 
-"@storybook/channel-postmessage@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-5.1.3.tgz#bd44302b1de729c2eeb84334935b8d2827d82de2"
-  integrity sha512-dmvZxzig2yP1qXT7btUHR5KncEEiC2HZMLyEOAZ2GPUSYUGGHGQQXD6OE4pRGj4IzCxrE7BUNQ/VDKqGGwO6rQ==
+"@storybook/channel-postmessage@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-5.1.8.tgz#81e7ddee8339c3901d449a261f833cbc006fb934"
+  integrity sha512-lvSY3qZFQMdFioN8IzDuSG9SsuhBtP/6HIAc0dd08q+wqD3Qiglq38TRwyFa+OXJ2eDD98KtlT7w9Mi+Ncu8bw==
   dependencies:
-    "@storybook/channels" "5.1.3"
-    "@storybook/client-logger" "5.1.3"
+    "@storybook/channels" "5.1.8"
+    "@storybook/client-logger" "5.1.8"
     core-js "^3.0.1"
     global "^4.3.2"
     telejson "^2.2.1"
 
-"@storybook/channels@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-5.1.3.tgz#25f2ff489a71fc58ee75d6d3e6b964790ba6193a"
-  integrity sha512-wZCLiR13edXyN0zw9fGNFAQIAppOAs/GmMLDPPBwujuTimmjLVK0OcTSR3TJzYeOeaUag5q5Rkt67Lq2rU0qcg==
+"@storybook/channels@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-5.1.8.tgz#eab67155999d36519feb4e134c420209f128ac9f"
+  integrity sha512-iuB326WWEmLYiMFnAoGoL4E4yADJ71EngHvbUBogtzx6VV3NjoeW6BoWbZTcBTL4lqfiKhnRbtOB379SXKErfw==
   dependencies:
     core-js "^3.0.1"
 
-"@storybook/client-api@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-5.1.3.tgz#28724bbedcbe51a2c10e1fa8a76484797334e9af"
-  integrity sha512-KXuzzDl8w0C+n5qfs+xunaVzp0SaSfGboHYy17VLryRAmFRFw8E9om0mHpRWihXqHWfF0zlC7L6onH8V74d8Kw==
+"@storybook/client-api@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-5.1.8.tgz#77e9923393349cbc10bfa7e2728ba79ae415cec9"
+  integrity sha512-ct1tNKTiJGh+n6X//h48K0eiIGs5/9p2VYWQgmejrssNniSEBUnnKa3V2RsLtFj2jhUkBeVu+btClm4xFUqAug==
   dependencies:
-    "@storybook/addons" "5.1.3"
-    "@storybook/client-logger" "5.1.3"
-    "@storybook/core-events" "5.1.3"
-    "@storybook/router" "5.1.3"
+    "@storybook/addons" "5.1.8"
+    "@storybook/client-logger" "5.1.8"
+    "@storybook/core-events" "5.1.8"
+    "@storybook/router" "5.1.8"
     common-tags "^1.8.0"
     core-js "^3.0.1"
     eventemitter3 "^3.1.0"
@@ -1591,20 +1591,20 @@
     memoizerific "^1.11.3"
     qs "^6.6.0"
 
-"@storybook/client-logger@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-5.1.3.tgz#6d9f45fdac7d3f2f65d1238c35df11170c2f8b68"
-  integrity sha512-/86NGA7NPsAktpA0lSnw0NhgdqS7Grz08wE7Paz+qLDj1AxnttTvMZctWJ8bLAa3EeJ9wHXGak854CmGiVFnWA==
+"@storybook/client-logger@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-5.1.8.tgz#444b18a25981b8030eaea0dca1a8247070c11297"
+  integrity sha512-TGf6KLGbS2JIJuQpBeHHgqNgy/c1j3dpeuagjJra5H/Sd+ZZj3VZRoCIU14mHP4Z9uffssSsHYj7PCJFYVXLgA==
   dependencies:
     core-js "^3.0.1"
 
-"@storybook/components@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/components/-/components-5.1.3.tgz#9c6898f8f66bf6b9dfdb3ecca73370f2d799e546"
-  integrity sha512-lM+iSdIl/UlmPlgH3vqo8NhMAdPUrWkgp40CVADfXsM6Yxai/23gpg8/HEoHiU5hFjNxowJUt76gTvwt9ak+gg==
+"@storybook/components@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/components/-/components-5.1.8.tgz#5cb6ffbc6d7c0785f54f63fcbd8b8417d9a8c4be"
+  integrity sha512-s6ulZkr/XOqS9kqPAE76QaVtudwkxwrurIYJ348Z+UttDjbVfv64xNtcU36pQnMV9aH8MEqIfSuCGZxRi/9v5w==
   dependencies:
-    "@storybook/client-logger" "5.1.3"
-    "@storybook/theming" "5.1.3"
+    "@storybook/client-logger" "5.1.8"
+    "@storybook/theming" "5.1.8"
     core-js "^3.0.1"
     global "^4.3.2"
     markdown-to-jsx "^6.9.1"
@@ -1612,8 +1612,8 @@
     polished "^3.3.1"
     popper.js "^1.14.7"
     prop-types "^15.7.2"
-    react "^16.8.4"
-    react-dom "^16.8.4"
+    react "^16.8.3"
+    react-dom "^16.8.3"
     react-focus-lock "^1.18.3"
     react-helmet-async "^1.0.2"
     react-popper-tooltip "^2.8.3"
@@ -1622,32 +1622,32 @@
     recompose "^0.30.0"
     simplebar-react "^1.0.0-alpha.6"
 
-"@storybook/core-events@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-5.1.3.tgz#febed0fb83201a107fd1c25b5487e2daec911fa0"
-  integrity sha512-oO9b05G/+9rYdNIx1BoOpFW+jwJeIR60PuJbvNMr1lSo9LH0JsG0+TNADjNXrLCChHfk1KMp1+DcpsSdNNNUqg==
+"@storybook/core-events@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-5.1.8.tgz#048545d70e03f56eb4d35e3797f6efd9ffe4e541"
+  integrity sha512-fqam2Rm5aV8TxdBgC/eiHriY33O4wTUKw+odiH3sH0l5gZQhcAcFtnV2K2rtxrhgQnsdAzDZ5FNIKvv+xx5ZCg==
   dependencies:
     core-js "^3.0.1"
 
-"@storybook/core@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/core/-/core-5.1.3.tgz#4c0ec2082432eed97884d8cde99acc905d3f257f"
-  integrity sha512-D3R4EIypMjeSMQw5s9cJeABdX8ymPUJPZ9RclBoALlhdJRZgzrFOU7fytKVXIfnSbRAH58d1/siZhxINBqs3GA==
+"@storybook/core@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/core/-/core-5.1.8.tgz#7e286dce3d01a1805be29c9f47c63275302ad87d"
+  integrity sha512-iCAZpa0qVRRyaOsvX2RhSZ/PjYHGDTs/sXCH4MHhXE/juU/6QaM8rdwu83Aw0Xm++LLbnNJgTVrJUVLoaVjTtg==
   dependencies:
     "@babel/plugin-proposal-class-properties" "^7.3.3"
     "@babel/plugin-proposal-object-rest-spread" "^7.3.2"
     "@babel/plugin-syntax-dynamic-import" "^7.2.0"
     "@babel/plugin-transform-react-constant-elements" "^7.2.0"
     "@babel/preset-env" "^7.4.5"
-    "@storybook/addons" "5.1.3"
-    "@storybook/channel-postmessage" "5.1.3"
-    "@storybook/client-api" "5.1.3"
-    "@storybook/client-logger" "5.1.3"
-    "@storybook/core-events" "5.1.3"
-    "@storybook/node-logger" "5.1.3"
-    "@storybook/router" "5.1.3"
-    "@storybook/theming" "5.1.3"
-    "@storybook/ui" "5.1.3"
+    "@storybook/addons" "5.1.8"
+    "@storybook/channel-postmessage" "5.1.8"
+    "@storybook/client-api" "5.1.8"
+    "@storybook/client-logger" "5.1.8"
+    "@storybook/core-events" "5.1.8"
+    "@storybook/node-logger" "5.1.8"
+    "@storybook/router" "5.1.8"
+    "@storybook/theming" "5.1.8"
+    "@storybook/ui" "5.1.8"
     airbnb-js-shims "^1 || ^2"
     autoprefixer "^9.4.9"
     babel-plugin-add-react-displayname "^0.0.5"
@@ -1661,6 +1661,7 @@
     commander "^2.19.0"
     common-tags "^1.8.0"
     core-js "^3.0.1"
+    corejs-upgrade-webpack-plugin "^2.0.0"
     css-loader "^2.1.1"
     detect-port "^1.3.0"
     dotenv-webpack "^1.7.0"
@@ -1695,14 +1696,14 @@
     terser-webpack-plugin "^1.2.4"
     url-loader "^1.1.2"
     util-deprecate "^1.0.2"
-    webpack "^4.32.0"
+    webpack "^4.33.0"
     webpack-dev-middleware "^3.7.0"
     webpack-hot-middleware "^2.25.0"
 
-"@storybook/node-logger@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-5.1.3.tgz#c93e17d497ae83732fae5e06dbe1f2cf8fb074e2"
-  integrity sha512-Whdm/aPe04SZzgaxLUGsiyeN3z9IYtvJbxQs+3p3XXaiUWG1P5HJL2uUiCv+nzvJfovpN81mAPaGFEiXUR+42g==
+"@storybook/node-logger@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-5.1.8.tgz#f3c72e5ed97ab7347bb00d4de5f9ff926c55c6bd"
+  integrity sha512-o1aUDhmIo/5wpkQybGNKiMd+hG9e97D2kVGVxiuUB7LRmK8RcQAhl+KEQ9tcutazczWekmiDjm25iw7KHRBAaA==
   dependencies:
     chalk "^2.4.2"
     core-js "^3.0.1"
@@ -1710,16 +1711,16 @@
     pretty-hrtime "^1.0.3"
     regenerator-runtime "^0.12.1"
 
-"@storybook/react@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/react/-/react-5.1.3.tgz#117fad300f6d128d635c98d4fa8971b051b21e74"
-  integrity sha512-udQrADQTbI7e6moqu6FXytqYl0h9JKyQ3gowvgauiZIMzCplWgFwAAFr6t6Dl26Opg0nTC8x9q4yztFuXbGTwA==
+"@storybook/react@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/react/-/react-5.1.8.tgz#566d4a982051d15b8af06e0bf6222187edc3d444"
+  integrity sha512-7lNbT2JBAOiXezG0s9UrWfUKubluS1M5ufyMUi8u+1JIvgSduS0q6FsRJV+dDAJFvDYEt03fpEZWgZU/bRUL/w==
   dependencies:
     "@babel/plugin-transform-react-constant-elements" "^7.2.0"
     "@babel/preset-flow" "^7.0.0"
     "@babel/preset-react" "^7.0.0"
-    "@storybook/core" "5.1.3"
-    "@storybook/node-logger" "5.1.3"
+    "@storybook/core" "5.1.8"
+    "@storybook/node-logger" "5.1.8"
     "@svgr/webpack" "^4.0.3"
     babel-plugin-named-asset-import "^0.3.1"
     babel-plugin-react-docgen "^3.0.0"
@@ -1733,12 +1734,12 @@
     react-dev-utils "^9.0.0"
     regenerator-runtime "^0.12.1"
     semver "^6.0.0"
-    webpack "^4.28.0"
+    webpack "^4.33.0"
 
-"@storybook/router@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/router/-/router-5.1.3.tgz#e87f7f368816f7a6b248d3aac39c57642c4f5083"
-  integrity sha512-ZTFVyJvmVzpMY7KKpqns9bPD61A0nhfEVspxe6auPzIszZ/NSqCazEINUNf6nwKc+pR61S29FdzpMFPys6E42Q==
+"@storybook/router@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/router/-/router-5.1.8.tgz#177a0322d5860b11ca662438bc8ecd08188f85e1"
+  integrity sha512-YKwAXBInzmi1zVcQSxK9rvFw7jDdy0zDU0Zr/oQxQCcnFs02YRRv5DJ47DqLIRxUHq7Uc6RxXfpl2wLJZi1ZfQ==
   dependencies:
     "@reach/router" "^1.2.1"
     core-js "^3.0.1"
@@ -1746,14 +1747,14 @@
     memoizerific "^1.11.3"
     qs "^6.6.0"
 
-"@storybook/theming@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-5.1.3.tgz#705654392b020ef5654c6c500f4398cc7f067653"
-  integrity sha512-ScBAEMkpwY6pHPuD7SYqAwbQ3M4cOEYY2340HtLNR53M6EJ2mcd87rH2kwpTEgTzeA0VuUln6WXEoBz3WRBLYA==
+"@storybook/theming@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-5.1.8.tgz#70981c26b962ae49cbdb0dd827d35cd9f1759107"
+  integrity sha512-kfo2BAGb0i1ZTCvcHFG6dLkYAeM1HoIDpEfcGZN4DIjxYd76qmyG3HlAfWGo0KmPIUk8iBnXZs8LmuhK7woZsA==
   dependencies:
     "@emotion/core" "^10.0.9"
     "@emotion/styled" "^10.0.7"
-    "@storybook/client-logger" "5.1.3"
+    "@storybook/client-logger" "5.1.8"
     common-tags "^1.8.0"
     core-js "^3.0.1"
     deep-object-diff "^1.1.0"
@@ -1764,18 +1765,18 @@
     prop-types "^15.7.2"
     resolve-from "^5.0.0"
 
-"@storybook/ui@5.1.3":
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-5.1.3.tgz#6bb07ada02196163a3df52cd3e7062e305eb869a"
-  integrity sha512-6DL0pHUXnJv4nsXld5vTerHGFAeDZ4ec38+/3oAcjztmnVzRm49P4v0aUGdCKxxra2h6Ytk6KHPmoqsFEX69CQ==
-  dependencies:
-    "@storybook/addons" "5.1.3"
-    "@storybook/api" "5.1.3"
-    "@storybook/client-logger" "5.1.3"
-    "@storybook/components" "5.1.3"
-    "@storybook/core-events" "5.1.3"
-    "@storybook/router" "5.1.3"
-    "@storybook/theming" "5.1.3"
+"@storybook/ui@5.1.8":
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-5.1.8.tgz#84cf1b0f0b833140cd2ffd30b9a2f85574dfa37f"
+  integrity sha512-YIJH/k9QdYQqIch2yEuj8eiEN9CKmlG+hgWR5v/hSm1i33ga1W5Qn64/w2xZESccnLMWc+bJH/visB8U/bcRnQ==
+  dependencies:
+    "@storybook/addons" "5.1.8"
+    "@storybook/api" "5.1.8"
+    "@storybook/client-logger" "5.1.8"
+    "@storybook/components" "5.1.8"
+    "@storybook/core-events" "5.1.8"
+    "@storybook/router" "5.1.8"
+    "@storybook/theming" "5.1.8"
     copy-to-clipboard "^3.0.8"
     core-js "^3.0.1"
     core-js-pure "^3.0.1"
@@ -1788,8 +1789,8 @@
     polished "^3.3.1"
     prop-types "^15.7.2"
     qs "^6.6.0"
-    react "^16.8.4"
-    react-dom "^16.8.4"
+    react "^16.8.3"
+    react-dom "^16.8.3"
     react-draggable "^3.1.1"
     react-helmet-async "^1.0.2"
     react-hotkeys "2.0.0-pre4"
@@ -2031,10 +2032,10 @@
   resolved "https://registry.yarnpkg.com/@types/jest-diff/-/jest-diff-20.0.1.tgz#35cc15b9c4f30a18ef21852e255fdb02f6d59b89"
   integrity sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA==
 
-"@types/jest@24.0.13":
-  version "24.0.13"
-  resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.13.tgz#10f50b64cb05fb02411fbba49e9042a3a11da3f9"
-  integrity sha512-3m6RPnO35r7Dg+uMLj1+xfZaOgIHHHut61djNjzwExXN4/Pm9has9C6I1KMYSfz7mahDhWUOVg4HW/nZdv5Pww==
+"@types/jest@24.0.15":
+  version "24.0.15"
+  resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.15.tgz#6c42d5af7fe3b44ffff7cc65de7bf741e8fa427f"
+  integrity sha512-MU1HIvWUme74stAoc3mgAi+aMlgKOudgEvQDIm1v4RkrDudBh1T+NFp5sftpBAdXdx1J0PbdpJ+M2EsSOi1djA==
   dependencies:
     "@types/jest-diff" "*"
 
@@ -3662,7 +3663,7 @@ binary-extensions@^1.0.0:
   resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
   integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
 
-bluebird@^3.3.5, bluebird@^3.5.0, bluebird@^3.5.3:
+bluebird@^3.3.5, bluebird@^3.5.0, bluebird@^3.5.5:
   version "3.5.5"
   resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f"
   integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==
@@ -3883,21 +3884,21 @@ bytes@3.1.0:
   integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
 
 cacache@^11.3.2:
-  version "11.3.2"
-  resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa"
-  integrity sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==
+  version "11.3.3"
+  resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc"
+  integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==
   dependencies:
-    bluebird "^3.5.3"
+    bluebird "^3.5.5"
     chownr "^1.1.1"
     figgy-pudding "^3.5.1"
-    glob "^7.1.3"
+    glob "^7.1.4"
     graceful-fs "^4.1.15"
     lru-cache "^5.1.1"
     mississippi "^3.0.0"
     mkdirp "^0.5.1"
     move-concurrently "^1.0.1"
     promise-inflight "^1.0.1"
-    rimraf "^2.6.2"
+    rimraf "^2.6.3"
     ssri "^6.0.1"
     unique-filename "^1.1.1"
     y18n "^4.0.0"
@@ -4450,6 +4451,14 @@ core-util-is@1.0.2, core-util-is@~1.0.0:
   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
   integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
 
+corejs-upgrade-webpack-plugin@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/corejs-upgrade-webpack-plugin/-/corejs-upgrade-webpack-plugin-2.0.0.tgz#adc05c9db427d87062c981373d28d4d174ddffcd"
+  integrity sha512-EiVJMYjo8uVkaj0JdQnfCW+ZuGPdloCDCSNTDdxr7R/9T+WHCx/4u2Q9kCNNMDRoB02jpyZPzrX5GBWNXM+Smg==
+  dependencies:
+    resolve-from "^5.0.0"
+    webpack "^4.33.0"
+
 cosmiconfig@^5.0.0, cosmiconfig@^5.2.0:
   version "5.2.1"
   resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
@@ -5691,10 +5700,10 @@ final-form-set-field-data@1.0.2:
   resolved "https://registry.yarnpkg.com/final-form-set-field-data/-/final-form-set-field-data-1.0.2.tgz#ce19095af5d607148c1e6ce3403d75d40223d848"
   integrity sha512-gAnENimyQ5GW3OEGca5pbwm4lYshW2orzfBlPUYqzcm7ZxkQrVO8FqCAgEcCM+Rq9U1OU0q+D+UkqETvvDY6jw==
 
-final-form@4.13.1:
-  version "4.13.1"
-  resolved "https://registry.yarnpkg.com/final-form/-/final-form-4.13.1.tgz#5893b1fe490a36198b219b351eec135d7394cdcf"
-  integrity sha512-9bTIY68bKn6rIcyolFZlUqK1odlRXpi30C5CazJ5gUZpoMkeDAeb53FQ3gv37eX1zWtQtydgwD5ZAwZB5EGoGg==
+final-form@4.15.0:
+  version "4.15.0"
+  resolved "https://registry.yarnpkg.com/final-form/-/final-form-4.15.0.tgz#8bce40c65138d0dd464c705880bbdc273320438a"
+  integrity sha512-A7pvzFAZ/mswLfU4pMKnB+otx3ttv8dO6/X+gWqhUSP+EpNsMenY88PHuGNJ9bIkhYcwF1ErXB8b2E2EMHKBLg==
   dependencies:
     "@babel/runtime" "^7.3.1"
 
@@ -6063,7 +6072,7 @@ glob-to-regexp@^0.3.0:
   resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
   integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=
 
-glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
+glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
   version "7.1.4"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
   integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
@@ -6538,10 +6547,10 @@ humanize-url@^1.0.0:
     normalize-url "^1.0.0"
     strip-url-auth "^1.0.0"
 
-husky@2.4.0:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/husky/-/husky-2.4.0.tgz#1bac7c44588f6e91f808b72efc82d24a57194f36"
-  integrity sha512-3k1wuZU20gFkphNWMjh2ISCFaqfbaLY7R9FST2Mj9HeRhUK9ydj9qQR8qfXlog3EctVGsyeilcZkIT7uBZDDVA==
+husky@2.4.1:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/husky/-/husky-2.4.1.tgz#dd00f9646f8693b93f7b3a12ba4be00be0eff7ab"
+  integrity sha512-ZRwMWHr7QruR22dQ5l3rEGXQ7rAQYsJYqaeCd+NyOsIFczAtqaApZQP3P4HwLZjCtFbm3SUNYoKuoBXX3AYYfw==
   dependencies:
     cosmiconfig "^5.2.0"
     execa "^1.0.0"
@@ -8065,10 +8074,10 @@ marksy@^7.0.0:
     he "^1.1.1"
     marked "^0.6.2"
 
-match-sorter@3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/match-sorter/-/match-sorter-3.1.0.tgz#d894415393b44cf50683af368f907fea57d31f55"
-  integrity sha512-iUh6P7e13ZcocKqOWMwPLOPkwfsiyQEP466/8hPzHkdGxHsaEB3gFKSXrgEOt+Or0rhVXAYBzjL1+jPaXBQKAw==
+match-sorter@3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/match-sorter/-/match-sorter-3.1.1.tgz#a49889245da80a3d6a032eca0c18e21f265bb42a"
+  integrity sha512-Qlox3wRM/Q4Ww9rv1cBmYKNJwWVX/WC+eA3+1S3Fv4EOhrqyp812ZEfVFKQk0AP6RfzmPUUOwEZBbJ8IRt8SOw==
   dependencies:
     remove-accents "0.4.2"
 
@@ -9482,12 +9491,7 @@ preserve@^0.2.0:
   resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
   integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
 
-prettier@1.18.1:
-  version "1.18.1"
-  resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.1.tgz#2c79bdc97cbd457fc56e2f37c91cf076d69a8e07"
-  integrity sha512-cO2Lm9UuFJHhNgHSChbFddQEzNPP+sA6fX1tGmC0VNqTc2X+7EH0gpGWdEX0HfCe5+NVyOyyyWUpLKsb8LU5vg==
-
-prettier@^1.16.4, prettier@^1.17.0:
+prettier@1.18.2, prettier@^1.16.4, prettier@^1.17.0:
   version "1.18.2"
   resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea"
   integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==
@@ -9515,10 +9519,10 @@ pretty-hrtime@^1.0.3:
   resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
   integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
 
-pretty-quick@1.11.0:
-  version "1.11.0"
-  resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-1.11.0.tgz#d0bf997f3eb7de3d1bac5ffeb9c335f404d844c8"
-  integrity sha512-hy0yOSnqVykrgoHcCcB72p3B5ERQJcjQI6ExeSGSTFE2cDrPwCQtFb3kXA1F+jUPrbt7orra8U+fjS/Emjgpuw==
+pretty-quick@1.11.1:
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-1.11.1.tgz#462ffa2b93d24c05b7a0c3a001e08601a0c55ee4"
+  integrity sha512-kSXCkcETfak7EQXz6WOkCeCqpbC4GIzrN/vaneTGMP/fAtD8NerA9bPhCUqHAks1geo7biZNl5uEMPceeneLuA==
   dependencies:
     chalk "^2.3.0"
     execa "^0.8.0"
@@ -9913,7 +9917,7 @@ react-docgen@^4.1.0:
     node-dir "^0.1.10"
     recast "^0.17.3"
 
-react-dom@16.8.6, react-dom@^16.8.4:
+react-dom@16.8.6, react-dom@^16.8.3:
   version "16.8.6"
   resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f"
   integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==
@@ -9963,13 +9967,13 @@ react-fast-compare@2.0.4:
   resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9"
   integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==
 
-react-final-form@6.0.1:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/react-final-form/-/react-final-form-6.0.1.tgz#7be4e42b05db065c511d566c5db535f5c9081a1b"
-  integrity sha512-5neRoPwGIQY0Ty6sOm0XxmqAi7upxqVgFt8ZdFGNaHa3krLVtQe85hsWKO3H4tabYmmw9KQfTT+NMflsou3yZQ==
+react-final-form@6.2.1:
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/react-final-form/-/react-final-form-6.2.1.tgz#c674ba55bb1cadd407eaa3466db8257e63cf7a4b"
+  integrity sha512-U4sxiBw5BtKJXCOA5ezaX+0U/Rr3j4R3YwNEkfYsBfYHtJABfUNrTmxPqeX0hrvj+jdhsBTgMU/41jZddJ9p9A==
   dependencies:
     "@babel/runtime" "^7.4.5"
-    ts-essentials "^2.0.2"
+    ts-essentials "^2.0.8"
 
 react-focus-lock@^1.18.3:
   version "1.19.1"
@@ -10027,7 +10031,7 @@ react-inspector@^3.0.2:
     is-dom "^1.0.9"
     prop-types "^15.6.1"
 
-react-is@16.8.6, react-is@^16.5.2, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6:
+react-is@16.8.6, react-is@^16.5.2, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.3, react-is@^16.8.4, react-is@^16.8.6:
   version "16.8.6"
   resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16"
   integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==
@@ -10166,7 +10170,7 @@ react-transition-group@^2.2.1:
     prop-types "^15.6.2"
     react-lifecycles-compat "^3.0.4"
 
-react@16.8.6, react@^16.7.0, react@^16.8.4:
+react@16.8.6, react@^16.8.3:
   version "16.8.6"
   resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe"
   integrity sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==
@@ -10455,10 +10459,10 @@ relateurl@0.2.x:
   resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
   integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
 
-remark-highlight.js@5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/remark-highlight.js/-/remark-highlight.js-5.1.0.tgz#0333fa214b409dd78b9935b7afd4a09fe2f4ab3a"
-  integrity sha512-m5d0RreEJ1z1Ug2LUCkCsNJ48Bcc15bx1lO3ZfQfYqMSI+J+bg8qz8p/cblJL1VB3oxqgbfRelj65AJAepn/zg==
+remark-highlight.js@5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/remark-highlight.js/-/remark-highlight.js-5.1.1.tgz#4045b915200238278839d91d41be01258211703a"
+  integrity sha512-e8iD5SMw94rjAHxQTGdJn/RzNYt0zpQ6+nVJ1ZX9GqDWhgOm0pm+bVlABsTkZbtoM3GKQ187vbHQ+nTs4Fl9vQ==
   dependencies:
     lowlight "^1.2.0"
     unist-util-visit "^1.0.0"
@@ -10497,10 +10501,10 @@ remark-parse@^6.0.0:
     vfile-location "^2.0.0"
     xtend "^4.0.1"
 
-remark-slug@5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-5.1.1.tgz#eb5dba0cf779487ef7ddf65c735ba4d4ca017542"
-  integrity sha512-r591rdoDPJkSSAVvEaTVUkqbMp7c7AyZfif14V0Dp66GQkOHzaPAS6wyhawSbqpS0ZdTnfJS+TltFoxzi6bdIA==
+remark-slug@5.1.2:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-5.1.2.tgz#715ecdef8df1226786204b1887d31ab16aa24609"
+  integrity sha512-DWX+Kd9iKycqyD+/B+gEFO3jjnt7Yg1O05lygYSNTe5i5PIxxxPjp5qPBDxPIzp5wreF7+1ROCwRgjEcqmzr3A==
   dependencies:
     github-slugger "^1.0.0"
     mdast-util-to-string "^1.0.0"
@@ -11826,7 +11830,7 @@ trough@^1.0.0:
   resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.4.tgz#3b52b1f13924f460c3fbfd0df69b587dbcbc762e"
   integrity sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q==
 
-ts-essentials@^2.0.2:
+ts-essentials@^2.0.8:
   version "2.0.10"
   resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-2.0.10.tgz#c44ebe16ee8089c6cbb9a423ed14f700dd4fe58e"
   integrity sha512-QnjI4QUa+dgP6NU6+uicEN7HDHrsyX26tCyhysmowfnGrGhs+gY9i5fDmMDBF+Bu7X3/mHUlag9jvkqsPaXJiA==
@@ -11960,10 +11964,10 @@ typedarray@^0.0.6:
   resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
   integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
 
-typescript@3.5.1:
-  version "3.5.1"
-  resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.1.tgz#ba72a6a600b2158139c5dd8850f700e231464202"
-  integrity sha512-64HkdiRv1yYZsSe4xC1WVgamNigVYjlssIoaH2HcZF0+ijsk5YK2g0G34w9wJkze8+5ow4STd22AynfO6ZYYLw==
+typescript@3.5.2:
+  version "3.5.2"
+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.2.tgz#a09e1dc69bc9551cadf17dba10ee42cf55e5d56c"
+  integrity sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA==
 
 ua-parser-js@^0.7.18:
   version "0.7.20"
@@ -12417,10 +12421,10 @@ webidl-conversions@^4.0.2:
   resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
   integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
 
-webpack-cli@3.3.3:
-  version "3.3.3"
-  resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.3.tgz#8b7587dee369a838eb4722f6cfa711c779011e5f"
-  integrity sha512-/qBxTvsxZ7bIFQtSa08QRY5BZuiJb27cbJM/nzmgXg9NEaudP20D7BruKKIuWfABqWoMEJQcNYYq/OxxSbPHlg==
+webpack-cli@3.3.4:
+  version "3.3.4"
+  resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.4.tgz#de27e281c48a897b8c219cb093e261d5f6afe44a"
+  integrity sha512-ubJGQEKMtBSpT+LiL5hXvn2GIOWiRWItR1DGUqJRhwRBeGhpRXjvF5f0erqdRJLErkfqS5/Ldkkedh4AL5Q1ZQ==
   dependencies:
     chalk "^2.4.1"
     cross-spawn "^6.0.5"
@@ -12538,37 +12542,7 @@ webpack@4.29.0:
     watchpack "^1.5.0"
     webpack-sources "^1.3.0"
 
-webpack@4.33.0:
-  version "4.33.0"
-  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.33.0.tgz#c30fc4307db432e5c5e3333aaa7c16a15a3b277e"
-  integrity sha512-ggWMb0B2QUuYso6FPZKUohOgfm+Z0sVFs8WwWuSH1IAvkWs428VDNmOlAxvHGTB9Dm/qOB/qtE5cRx5y01clxw==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/helper-module-context" "1.8.5"
-    "@webassemblyjs/wasm-edit" "1.8.5"
-    "@webassemblyjs/wasm-parser" "1.8.5"
-    acorn "^6.0.5"
-    acorn-dynamic-import "^4.0.0"
-    ajv "^6.1.0"
-    ajv-keywords "^3.1.0"
-    chrome-trace-event "^1.0.0"
-    enhanced-resolve "^4.1.0"
-    eslint-scope "^4.0.0"
-    json-parse-better-errors "^1.0.2"
-    loader-runner "^2.3.0"
-    loader-utils "^1.1.0"
-    memory-fs "~0.4.1"
-    micromatch "^3.1.8"
-    mkdirp "~0.5.0"
-    neo-async "^2.5.0"
-    node-libs-browser "^2.0.0"
-    schema-utils "^1.0.0"
-    tapable "^1.1.0"
-    terser-webpack-plugin "^1.1.0"
-    watchpack "^1.5.0"
-    webpack-sources "^1.3.0"
-
-webpack@^4.28.0, webpack@^4.32.0:
+webpack@4.34.0, webpack@^4.33.0:
   version "4.34.0"
   resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.34.0.tgz#a4c30129482f7b4ece4c0842002dedf2b56fab58"
   integrity sha512-ry2IQy1wJjOefLe1uJLzn5tG/DdIKzQqNlIAd2L84kcaADqNvQDTBlo8UcCNyDaT5FiaB+16jhAkb63YeG3H8Q==


Test patch:
diff --git a/src/components/form/input/Select/SelectMulti/SelectMultiItem.test.tsx b/src/components/Select/SelectMulti/SelectMultiItem.test.tsx
similarity index 91%
rename from src/components/form/input/Select/SelectMulti/SelectMultiItem.test.tsx
rename to src/components/Select/SelectMulti/SelectMultiItem.test.tsx
index 577d470d4..c09007cf6 100644
--- a/src/components/form/input/Select/SelectMulti/SelectMultiItem.test.tsx
+++ b/src/components/Select/SelectMulti/SelectMultiItem.test.tsx
@@ -1,8 +1,8 @@
 import { fireEvent, render } from '@testing-library/react'
 import React from 'react'
 
-import { LocaleContext } from '../../../../../locale'
-import ptBr from '../../../../../locale/locales/pt-BR'
+import { LocaleContext } from '../../../locale'
+import ptBr from '../../../locale/locales/pt-BR'
 
 import { SelectMultiItem } from './SelectMultiItem'
 
diff --git a/src/components/SelectInline/SelectInline.test.tsx b/src/components/SelectInline/SelectInline.test.tsx
index c6dac521b..1d20861fb 100644
--- a/src/components/SelectInline/SelectInline.test.tsx
+++ b/src/components/SelectInline/SelectInline.test.tsx
@@ -1,7 +1,7 @@
 import { fireEvent, render, wait } from '@testing-library/react'
 import React from 'react'
 
-import { DefaultItemType } from '../form'
+import { DefaultItemType } from '../Select/SelectSingle'
 
 import { SelectInline, SelectInlineProps } from './SelectInline'
 
diff --git a/src/components/form/finalForm/Field/Field.test.tsx b/src/form/Field/Field.test.tsx
similarity index 97%
rename from src/components/form/finalForm/Field/Field.test.tsx
rename to src/form/Field/Field.test.tsx
index 13e0bf867..21a330ecc 100644
--- a/src/components/form/finalForm/Field/Field.test.tsx
+++ b/src/form/Field/Field.test.tsx
@@ -3,7 +3,7 @@ import setFieldData from 'final-form-set-field-data'
 import React from 'react'
 import { Form } from 'react-final-form'
 
-import metaPath from '../../../../metaPath/metaPath'
+import metaPath from '../../metaPath/metaPath'
 
 import { Field, FieldProps, RenderProps } from './Field'
 
diff --git a/src/components/form/finalForm/Field/__snapshots__/Field.test.tsx.snap b/src/form/Field/__snapshots__/Field.test.tsx.snap
similarity index 100%
rename from src/components/form/finalForm/Field/__snapshots__/Field.test.tsx.snap
rename to src/form/Field/__snapshots__/Field.test.tsx.snap
diff --git a/src/components/form/finalForm/Field/index.ts b/src/form/Field/index.ts
similarity index 100%
rename from src/components/form/finalForm/Field/index.ts
rename to src/form/Field/index.ts
diff --git a/src/components/form/finalForm/Field/util.test.ts b/src/form/Field/util.test.ts
similarity index 95%
rename from src/components/form/finalForm/Field/util.test.ts
rename to src/form/Field/util.test.ts
index d32c375d8..5f3290aa8 100644
--- a/src/components/form/finalForm/Field/util.test.ts
+++ b/src/form/Field/util.test.ts
@@ -4,7 +4,7 @@ import { BaseFieldProps, extractInputProps, getFieldError } from './util'
 
 describe('getFieldError', () => {
   it('should return the current field active error', () => {
-    const baseFieldProps: FieldRenderProps<any> = {
+    const baseFieldProps: FieldRenderProps<any, HTMLElement> = {
       input: { name: '', checked: false, onBlur: jest.fn(), onChange: jest.fn(), onFocus: jest.fn(), value: '' },
       meta: {},
     }
diff --git a/src/components/form/finalForm/Form/Form.test.tsx b/src/form/Form/Form.test.tsx
similarity index 98%
rename from src/components/form/finalForm/Form/Form.test.tsx
rename to src/form/Form/Form.test.tsx
index bac2ccf3b..1f6ff2fa8 100644
--- a/src/components/form/finalForm/Form/Form.test.tsx
+++ b/src/form/Form/Form.test.tsx
@@ -8,7 +8,7 @@ import { Form, FormProps } from './Form'
 
 // tslint:disable jsx-no-lambda
 
-const createComponent = (props: Partial<FormProps> = {}) => {
+const createComponent = (props: Partial<FormProps<any>> = {}) => {
   return (
     <Form
       onSubmit={jest.fn()}
diff --git a/src/components/form/field/DateField/DateField.test.tsx b/src/form/field/DateField/DateField.test.tsx
similarity index 96%
rename from src/components/form/field/DateField/DateField.test.tsx
rename to src/form/field/DateField/DateField.test.tsx
index da1dc17b7..f0e0f9139 100644
--- a/src/components/form/field/DateField/DateField.test.tsx
+++ b/src/form/field/DateField/DateField.test.tsx
@@ -1,7 +1,7 @@
 import { render } from '@testing-library/react'
 import React from 'react'
 
-import { withForm } from '../../../../test'
+import { withForm } from '../../../test'
 
 import { DateField, format, parse } from './DateField'
 
diff --git a/src/components/form/field/DateField/__snapshots__/DateField.test.tsx.snap b/src/form/field/DateField/__snapshots__/DateField.test.tsx.snap
similarity index 100%
rename from src/components/form/field/DateField/__snapshots__/DateField.test.tsx.snap
rename to src/form/field/DateField/__snapshots__/DateField.test.tsx.snap
diff --git a/src/components/form/field/DateField/index.ts b/src/form/field/DateField/index.ts
similarity index 100%
rename from src/components/form/field/DateField/index.ts
rename to src/form/field/DateField/index.ts
diff --git a/src/components/form/field/HiddenField/HiddenField.test.tsx b/src/form/field/HiddenField/HiddenField.test.tsx
similarity index 86%
rename from src/components/form/field/HiddenField/HiddenField.test.tsx
rename to src/form/field/HiddenField/HiddenField.test.tsx
index 4011117db..d12777658 100644
--- a/src/components/form/field/HiddenField/HiddenField.test.tsx
+++ b/src/form/field/HiddenField/HiddenField.test.tsx
@@ -1,7 +1,7 @@
 import { render } from '@testing-library/react'
 import React from 'react'
 
-import { withForm } from '../../../../test/index'
+import { withForm } from '../../../test'
 
 import { HiddenField } from './HiddenField'
 
diff --git a/src/components/form/field/HiddenField/__snapshots__/HiddenField.test.tsx.snap b/src/form/field/HiddenField/__snapshots__/HiddenField.test.tsx.snap
similarity index 100%
rename from src/components/form/field/HiddenField/__snapshots__/HiddenField.test.tsx.snap
rename to src/form/field/HiddenField/__snapshots__/HiddenField.test.tsx.snap
diff --git a/src/components/form/field/HiddenField/index.ts b/src/form/field/HiddenField/index.ts
similarity index 100%
rename from src/components/form/field/HiddenField/index.ts
rename to src/form/field/HiddenField/index.ts
diff --git a/src/components/form/field/MaskedField/MaskedField.test.tsx b/src/form/field/MaskedField/MaskedField.test.tsx
similarity index 53%
rename from src/components/form/field/MaskedField/MaskedField.test.tsx
rename to src/form/field/MaskedField/MaskedField.test.tsx
index a9ae45501..aef6ea919 100644
--- a/src/components/form/field/MaskedField/MaskedField.test.tsx
+++ b/src/form/field/MaskedField/MaskedField.test.tsx
@@ -1,11 +1,9 @@
 import { render } from '@testing-library/react'
 import React from 'react'
 
-import { withForm } from '../../../../test/index'
-import { Form } from '../../finalForm/Form/Form'
+import { withForm } from '../../../test'
 
 import { MaskedField } from './MaskedField'
-import { TimeField } from './maskedFields'
 
 it('render correctly', () => {
   const { container } = render(
@@ -20,12 +18,3 @@ it('render with icon', () => {
   )
   expect(container).toMatchSnapshot()
 })
-
-it('TimeField should parse hh:mm:ss to hh:mm', () => {
-  const timeField = () => {
-    return <TimeField name='test' label='Test Label' />
-  }
-  const { container } = render(<Form render={timeField} onSubmit={null} initialValues={{ test: '05:30:55' }} />)
-
-  expect(container.querySelector('input').getAttribute('value')).toEqual('05:30')
-})
diff --git a/src/components/form/field/MonthField/MonthField.test.tsx b/src/form/field/MonthField/MonthField.test.tsx
similarity index 88%
rename from src/components/form/field/MonthField/MonthField.test.tsx
rename to src/form/field/MonthField/MonthField.test.tsx
index 97945310a..373d7e687 100644
--- a/src/components/form/field/MonthField/MonthField.test.tsx
+++ b/src/form/field/MonthField/MonthField.test.tsx
@@ -1,7 +1,7 @@
 import { render } from '@testing-library/react'
 import React from 'react'
 
-import { withForm } from '../../../../test'
+import { withForm } from '../../../test'
 
 import { MonthField } from './MonthField'
 
diff --git a/src/components/form/field/NumberField/NumberField.test.tsx b/src/form/field/NumberField/NumberField.test.tsx
similarity index 93%
rename from src/components/form/field/NumberField/NumberField.test.tsx
rename to src/form/field/NumberField/NumberField.test.tsx
index 89cdd01b7..bc8191118 100644
--- a/src/components/form/field/NumberField/NumberField.test.tsx
+++ b/src/form/field/NumberField/NumberField.test.tsx
@@ -1,7 +1,7 @@
 import { fireEvent, render } from '@testing-library/react'
 import React from 'react'
 
-import { withForm } from '../../../../test/index'
+import { withForm } from '../../../test'
 
 import { NumberField, parse } from './NumberField'
 
diff --git a/src/components/form/field/SelectField/SelectField.test.tsx b/src/form/field/SelectField/SelectField.test.tsx
similarity index 86%
rename from src/components/form/field/SelectField/SelectField.test.tsx
rename to src/form/field/SelectField/SelectField.test.tsx
index 48423b8c4..79b458b42 100644
--- a/src/components/form/field/SelectField/SelectField.test.tsx
+++ b/src/form/field/SelectField/SelectField.test.tsx
@@ -1,15 +1,15 @@
 import { render } from '@testing-library/react'
 import React from 'react'
 
-import metaPath from '../../../../metaPath/metaPath'
-import { Form, FormProps } from '../../finalForm/Form'
-import { DefaultItemType } from '../../input/Select'
+import { DefaultItemType } from '../../../components/Select'
+import metaPath from '../../../metaPath/metaPath'
+import { Form, FormProps } from '../../Form'
 
 import { SelectField, SelectFieldProps } from './SelectField'
 
 const items: DefaultItemType[] = [{ value: 1, label: 'Item #1' }, { value: 2, label: 'Item #2' }]
 
-const createFormAndField = (fieldProps?: Partial<SelectFieldProps>, formProps?: Partial<FormProps>) => {
+const createFormAndField = (fieldProps?: Partial<SelectFieldProps>, formProps?: Partial<FormProps<any>>) => {
   // tslint:disable jsx-no-lambda
   return (
     <Form
diff --git a/src/components/form/field/TextField/TextField.test.tsx b/src/form/field/TextField/TextField.test.tsx
similarity index 92%
rename from src/components/form/field/TextField/TextField.test.tsx
rename to src/form/field/TextField/TextField.test.tsx
index b6a2f4803..2c889086b 100644
--- a/src/components/form/field/TextField/TextField.test.tsx
+++ b/src/form/field/TextField/TextField.test.tsx
@@ -1,8 +1,8 @@
 import { fireEvent, render } from '@testing-library/react'
 import React from 'react'
 
-import { withForm } from '../../../../test/index'
-import { Form } from '../../finalForm/Form'
+import { withForm } from '../../../test'
+import { Form } from '../../Form'
 
 import { TextField } from './TextField'
 
diff --git a/src/form/field/TimeField/TimeField.test.tsx b/src/form/field/TimeField/TimeField.test.tsx
new file mode 100644
index 000000000..0e7a21b83
--- /dev/null
+++ b/src/form/field/TimeField/TimeField.test.tsx
@@ -0,0 +1,14 @@
+import { render } from '@testing-library/react'
+import React from 'react'
+import { Form } from 'react-final-form'
+
+import { TimeField } from './TimeField'
+
+it('TimeField should parse hh:mm:ss to hh:mm', () => {
+  const timeField = () => {
+    return <TimeField name='test' label='Test Label' />
+  }
+  const { container } = render(<Form render={timeField} onSubmit={jest.fn()} initialValues={{ test: '05:30:55' }} />)
+
+  expect(container.querySelector('input').getAttribute('value')).toEqual('05:30')
+})