Repository: laboratoriobridge/bold
Pull request #407 (2019-06-04 19:57:38)

Moving components outside 'elements' folder


Patch:
diff --git a/package.json b/package.json
index 291c118e9..e1b75bae4 100644
--- a/package.json
+++ b/package.json
@@ -28,8 +28,8 @@
     "storybook": "start-storybook -p 6006",
     "build-storybook": "build-storybook",
     "icons": "npm run icons:clean && npm run icons:svgr && npm run icons:index",
-    "icons:clean": "rm -rf ./src/components/elements/Icon/generated",
-    "icons:svgr": "svgr --ext tsx --icon --template ./tools/IconTemplate.js --svgo-config svgo.config.json -d ./src/components/elements/Icon/generated ./icons",
+    "icons:clean": "rm -rf ./src/components/Icon/generated",
+    "icons:svgr": "svgr --ext tsx --icon --template ./tools/IconTemplate.js --svgo-config svgo.config.json -d ./src/components/Icon/generated ./icons",
     "icons:index": "babel-node ./tools/generateIconsIndex.js",
     "sonar": "sonar-scanner",
     "site:dev": "next site/",
diff --git a/site/components/IconLibrary.tsx b/site/components/IconLibrary.tsx
index 9dc84d4a4..fd81e8a59 100644
--- a/site/components/IconLibrary.tsx
+++ b/site/components/IconLibrary.tsx
@@ -2,7 +2,7 @@ import matchSorter from 'match-sorter'
 import { useState } from 'react'
 
 import { Cell, Grid, Icon, Text, TextInput, Theme, useStyles, VFlow } from '../../lib'
-import { IconMap } from '../../lib/components/elements/Icon/generated/Icons'
+import { IconMap } from '../../lib/components/Icon/generated/Icons'
 
 export const IconLibrary = () => {
   const { classes } = useStyles(createStyles)
diff --git a/site/components/Page.tsx b/site/components/Page.tsx
index 32b0767db..f05edec66 100644
--- a/site/components/Page.tsx
+++ b/site/components/Page.tsx
@@ -1,5 +1,5 @@
-import { darkTheme, Text, Theme, useStyles } from '../../lib'
-import { createStyles as createLinkStyles } from '../../lib/components/elements/Link/Link'
+import { Text, Theme, useStyles } from '../../lib'
+import { createStyles as createLinkStyles } from '../../lib/components/Link/Link'
 import pages from '../pages'
 
 import { PageContainer } from './PageContainer'
diff --git a/src/components/elements/Alert/Alert.tsx b/src/components/Alert/Alert.tsx
similarity index 97%
rename from src/components/elements/Alert/Alert.tsx
rename to src/components/Alert/Alert.tsx
index 1b23dce8b..49593c21e 100644
--- a/src/components/elements/Alert/Alert.tsx
+++ b/src/components/Alert/Alert.tsx
@@ -1,8 +1,8 @@
 import { Interpolation } from 'emotion'
 import React, { CSSProperties } from 'react'
 
-import { useLocale } from '../../../locale'
-import { Theme, useStyles } from '../../../styles'
+import { useLocale } from '../../locale'
+import { Theme, useStyles } from '../../styles'
 import { Button } from '../Button'
 import { Icons } from '../Icon'
 import { Icon } from '../Icon/Icon'
diff --git a/src/components/elements/Breadcrumb/Breadcrumbs.tsx b/src/components/Breadcrumb/Breadcrumbs.tsx
similarity index 93%
rename from src/components/elements/Breadcrumb/Breadcrumbs.tsx
rename to src/components/Breadcrumb/Breadcrumbs.tsx
index c60b89524..85682e75a 100644
--- a/src/components/elements/Breadcrumb/Breadcrumbs.tsx
+++ b/src/components/Breadcrumb/Breadcrumbs.tsx
@@ -1,7 +1,7 @@
 import React, { CSSProperties, Fragment } from 'react'
 
-import { useRovingTabIndex } from '../../../hooks/useRovingTabIndex'
-import { Theme, useStyles } from '../../../styles'
+import { useRovingTabIndex } from '../../hooks/useRovingTabIndex'
+import { Theme, useStyles } from '../../styles'
 import { Icon } from '../Icon'
 
 export interface BreadcrumbsProps {
diff --git a/src/components/elements/Breadcrumb/__snapshots__/Breadcrumbs.test.tsx.snap b/src/components/Breadcrumb/__snapshots__/Breadcrumbs.test.tsx.snap
similarity index 100%
rename from src/components/elements/Breadcrumb/__snapshots__/Breadcrumbs.test.tsx.snap
rename to src/components/Breadcrumb/__snapshots__/Breadcrumbs.test.tsx.snap
diff --git a/src/components/elements/Breadcrumb/index.ts b/src/components/Breadcrumb/index.ts
similarity index 100%
rename from src/components/elements/Breadcrumb/index.ts
rename to src/components/Breadcrumb/index.ts
diff --git a/src/components/elements/Button/Button.stories.tsx b/src/components/Button/Button.stories.tsx
similarity index 100%
rename from src/components/elements/Button/Button.stories.tsx
rename to src/components/Button/Button.stories.tsx
diff --git a/src/components/elements/Button/Button/Button.test.tsx b/src/components/Button/Button/Button.test.tsx
similarity index 100%
rename from src/components/elements/Button/Button/Button.test.tsx
rename to src/components/Button/Button/Button.test.tsx
diff --git a/src/components/elements/Button/Button/Button.tsx b/src/components/Button/Button/Button.tsx
similarity index 94%
rename from src/components/elements/Button/Button/Button.tsx
rename to src/components/Button/Button/Button.tsx
index 009dc7abf..25aa18d43 100644
--- a/src/components/elements/Button/Button/Button.tsx
+++ b/src/components/Button/Button/Button.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { ExternalStyles, useStyles } from '../../../../styles'
-import { Omit } from '../../../../util'
+import { ExternalStyles, useStyles } from '../../../styles'
+import { Omit } from '../../../util'
 import { ButtonBase, ButtonBaseProps } from '../ButtonBase'
 
 import { createBaseStyles, createSizeStyles, skinMap, SkinProps } from './ButtonSkins'
diff --git a/src/components/elements/Button/Button/ButtonSkins.ts b/src/components/Button/Button/ButtonSkins.ts
similarity index 97%
rename from src/components/elements/Button/Button/ButtonSkins.ts
rename to src/components/Button/Button/ButtonSkins.ts
index d3f2f8637..8721b0d68 100644
--- a/src/components/elements/Button/Button/ButtonSkins.ts
+++ b/src/components/Button/Button/ButtonSkins.ts
@@ -1,4 +1,4 @@
-import { Styles, Theme } from '../../../../styles'
+import { Styles, Theme } from '../../../styles'
 
 import { createStyles as createDefault } from './skins/default'
 import { createStyles as createGhost } from './skins/ghost'
diff --git a/src/components/elements/Button/Button/__snapshots__/Button.test.tsx.snap b/src/components/Button/Button/__snapshots__/Button.test.tsx.snap
similarity index 100%
rename from src/components/elements/Button/Button/__snapshots__/Button.test.tsx.snap
rename to src/components/Button/Button/__snapshots__/Button.test.tsx.snap
diff --git a/src/components/Button/Button/skins/default.ts b/src/components/Button/Button/skins/default.ts
new file mode 100644
index 000000000..c30920c42
--- /dev/null
+++ b/src/components/Button/Button/skins/default.ts
@@ -0,0 +1,40 @@
+import { focusBoxShadow, shade, Theme } from '../../../../styles'
+import { Skin } from '../ButtonSkins'
+
+export const createStyles = (theme: Theme): Skin => ({
+  button: {
+    backgroundColor: theme.pallete.surface.main,
+    border: '1px solid ' + theme.pallete.gray.c60,
+    borderRadius: theme.radius.button,
+    color: theme.pallete.text.main,
+    ':not(:disabled):active': {
+      boxShadow: 'inset 0 2px 8px 0 rgba(0, 0, 0, 0.1)',
+    },
+    ':focus': {
+      outline: 'none',
+      boxShadow: focusBoxShadow(theme),
+    },
+    ':not(:disabled):hover': {
+      backgroundColor: shade(-0.08, theme.pallete.surface.main),
+    },
+  },
+  primary: {
+    backgroundColor: theme.pallete.primary.main,
+    color: theme.pallete.surface.main,
+    border: `1px solid ${theme.pallete.primary.main}`,
+    ':not(:disabled):hover': {
+      backgroundColor: shade(-0.08, theme.pallete.primary.main),
+    },
+  },
+  danger: {
+    backgroundColor: theme.pallete.status.danger.main,
+    color: theme.pallete.status.danger.onColor,
+    border: `1px solid ${theme.pallete.status.danger.main}`,
+    ':not(:disabled):hover': {
+      backgroundColor: shade(-0.08, theme.pallete.status.danger.main),
+    },
+    ':focus': {
+      boxShadow: focusBoxShadow(theme, 'danger'),
+    },
+  },
+})
diff --git a/src/components/Button/Button/skins/ghost.ts b/src/components/Button/Button/skins/ghost.ts
new file mode 100644
index 000000000..973643fd8
--- /dev/null
+++ b/src/components/Button/Button/skins/ghost.ts
@@ -0,0 +1,30 @@
+import { focusBoxShadow, hexToRGB, Theme } from '../../../../styles'
+import { Skin } from '../ButtonSkins'
+
+export const createStyles = (theme: Theme): Skin => ({
+  button: {
+    backgroundColor: 'transparent',
+    border: '1px solid transparent',
+    borderRadius: theme.radius.button,
+    color: theme.pallete.text.main,
+    ':not(:disabled):active': {
+      boxShadow: 'inset 0 2px 8px 0 rgba(0, 0, 0, 0.1)',
+    },
+    ':focus': {
+      outline: 'none',
+      boxShadow: focusBoxShadow(theme, 'primary', 'single'),
+    },
+    ':not(:disabled):hover': {
+      backgroundColor: hexToRGB(theme.pallete.gray.c20, 0.1),
+    },
+  },
+  primary: {
+    color: theme.pallete.primary.main,
+  },
+  danger: {
+    color: theme.pallete.status.danger.main,
+    ':focus': {
+      boxShadow: focusBoxShadow(theme, 'danger'),
+    },
+  },
+})
diff --git a/src/components/Button/Button/skins/outline.ts b/src/components/Button/Button/skins/outline.ts
new file mode 100644
index 000000000..4471c24a4
--- /dev/null
+++ b/src/components/Button/Button/skins/outline.ts
@@ -0,0 +1,38 @@
+import { focusBoxShadow, hexToRGB, Theme } from '../../../../styles'
+import { Skin } from '../ButtonSkins'
+
+export const createStyles = (theme: Theme): Skin => ({
+  button: {
+    backgroundColor: 'transparent',
+    border: '1px solid ' + theme.pallete.gray.c60,
+    borderRadius: theme.radius.button,
+    color: theme.pallete.text.main,
+    ':not(:disabled):active': {
+      boxShadow: 'inset 0 2px 8px 0 rgba(0, 0, 0, 0.1)',
+    },
+    ':focus': {
+      outline: 'none',
+      boxShadow: focusBoxShadow(theme),
+    },
+    ':not(:disabled):hover': {
+      backgroundColor: hexToRGB(theme.pallete.gray.c50, 0.16),
+    },
+  },
+  primary: {
+    border: `1px solid ${theme.pallete.primary.main}`,
+    color: theme.pallete.primary.main,
+    ':not(:disabled):hover': {
+      backgroundColor: hexToRGB(theme.pallete.primary.main, 0.16),
+    },
+  },
+  danger: {
+    border: `1px solid ${theme.pallete.status.danger.main}`,
+    color: theme.pallete.status.danger.main,
+    ':not(:disabled):hover': {
+      backgroundColor: hexToRGB(theme.pallete.status.danger.main, 0.1),
+    },
+    ':focus': {
+      boxShadow: focusBoxShadow(theme, 'danger'),
+    },
+  },
+})
diff --git a/src/components/elements/Button/ButtonBase.tsx b/src/components/Button/ButtonBase.tsx
similarity index 97%
rename from src/components/elements/Button/ButtonBase.tsx
rename to src/components/Button/ButtonBase.tsx
index 37302243d..46c95808e 100644
--- a/src/components/elements/Button/ButtonBase.tsx
+++ b/src/components/Button/ButtonBase.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 
-import { isPromise } from '../../../util'
+import { isPromise } from '../../util'
 
 export type OnClickWithReturn = (event: React.SyntheticEvent<any>) => any
 
diff --git a/src/components/elements/Button/index.ts b/src/components/Button/index.ts
similarity index 100%
rename from src/components/elements/Button/index.ts
rename to src/components/Button/index.ts
diff --git a/src/components/elements/ButtonGroup/ButtonGroup.stories.tsx b/src/components/ButtonGroup/ButtonGroup.stories.tsx
similarity index 100%
rename from src/components/elements/ButtonGroup/ButtonGroup.stories.tsx
rename to src/components/ButtonGroup/ButtonGroup.stories.tsx
diff --git a/src/components/elements/ButtonGroup/ButtonGroup.test.tsx b/src/components/ButtonGroup/ButtonGroup.test.tsx
similarity index 100%
rename from src/components/elements/ButtonGroup/ButtonGroup.test.tsx
rename to src/components/ButtonGroup/ButtonGroup.test.tsx
diff --git a/src/components/elements/ButtonGroup/ButtonGroup.tsx b/src/components/ButtonGroup/ButtonGroup.tsx
similarity index 85%
rename from src/components/elements/ButtonGroup/ButtonGroup.tsx
rename to src/components/ButtonGroup/ButtonGroup.tsx
index 01cc39aae..08c6e46fe 100644
--- a/src/components/elements/ButtonGroup/ButtonGroup.tsx
+++ b/src/components/ButtonGroup/ButtonGroup.tsx
@@ -1,8 +1,8 @@
 import React, { CSSProperties } from 'react'
 
-import { useRovingTabIndex } from '../../../hooks/useRovingTabIndex'
-import { ExternalStyles, useStyles } from '../../../styles'
-import { Omit } from '../../../util'
+import { useRovingTabIndex } from '../../hooks/useRovingTabIndex'
+import { ExternalStyles, useStyles } from '../../styles'
+import { Omit } from '../../util'
 
 export interface ButtonGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {
   style?: ExternalStyles
diff --git a/src/components/elements/Calendar/Calendar.tsx b/src/components/Calendar/Calendar.tsx
similarity index 97%
rename from src/components/elements/Calendar/Calendar.tsx
rename to src/components/Calendar/Calendar.tsx
index 1b98e09b3..7edf399d4 100644
--- a/src/components/elements/Calendar/Calendar.tsx
+++ b/src/components/Calendar/Calendar.tsx
@@ -1,8 +1,8 @@
 import { Interpolation } from 'emotion'
 import React, { CSSProperties, useState } from 'react'
 
-import { Theme, useStyles } from '../../../styles'
-import { Omit } from '../../../util/types'
+import { Theme, useStyles } from '../../styles'
+import { Omit } from '../../util/types'
 import { HFlow } from '../Flow'
 
 import { MonthControl } from './MonthControl'
diff --git a/src/components/elements/Calendar/MonthControl.tsx b/src/components/Calendar/MonthControl.tsx
similarity index 90%
rename from src/components/elements/Calendar/MonthControl.tsx
rename to src/components/Calendar/MonthControl.tsx
index 1f17223c4..8d9ec8bfc 100644
--- a/src/components/elements/Calendar/MonthControl.tsx
+++ b/src/components/Calendar/MonthControl.tsx
@@ -1,8 +1,8 @@
 import React from 'react'
 
-import { useLocale } from '../../../locale'
-import { getUserLocale } from '../../../util/locale'
-import { capitalize } from '../../../util/string'
+import { useLocale } from '../../locale'
+import { getUserLocale } from '../../util/locale'
+import { capitalize } from '../../util/string'
 import { Button } from '../Button'
 import { HFlow } from '../Flow'
 import { Icon } from '../Icon'
diff --git a/src/components/elements/Calendar/MonthView.test.tsx b/src/components/Calendar/MonthView.test.tsx
similarity index 100%
rename from src/components/elements/Calendar/MonthView.test.tsx
rename to src/components/Calendar/MonthView.test.tsx
diff --git a/src/components/elements/Calendar/MonthView.tsx b/src/components/Calendar/MonthView.tsx
similarity index 96%
rename from src/components/elements/Calendar/MonthView.tsx
rename to src/components/Calendar/MonthView.tsx
index b4a4d255e..6e42fc20f 100644
--- a/src/components/elements/Calendar/MonthView.tsx
+++ b/src/components/Calendar/MonthView.tsx
@@ -1,8 +1,8 @@
 import { Interpolation } from 'emotion'
 import React, { CSSProperties } from 'react'
 
-import { Theme, useStyles } from '../../../styles'
-import { getUserLocale } from '../../../util/locale'
+import { Theme, useStyles } from '../../styles'
+import { getUserLocale } from '../../util/locale'
 
 import { createMonthMatrix } from './util'
 
diff --git a/src/components/elements/Calendar/YearControl.tsx b/src/components/Calendar/YearControl.tsx
similarity index 93%
rename from src/components/elements/Calendar/YearControl.tsx
rename to src/components/Calendar/YearControl.tsx
index 4aa9d20d2..5e1579cc4 100644
--- a/src/components/elements/Calendar/YearControl.tsx
+++ b/src/components/Calendar/YearControl.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { useLocale } from '../../../locale'
-import { getUserLocale } from '../../../util/locale'
+import { useLocale } from '../../locale'
+import { getUserLocale } from '../../util/locale'
 import { Button } from '../Button'
 import { HFlow } from '../Flow'
 import { Icon } from '../Icon'
diff --git a/src/components/elements/Calendar/__snapshots__/Calendar.test.tsx.snap b/src/components/Calendar/__snapshots__/Calendar.test.tsx.snap
similarity index 100%
rename from src/components/elements/Calendar/__snapshots__/Calendar.test.tsx.snap
rename to src/components/Calendar/__snapshots__/Calendar.test.tsx.snap
diff --git a/src/components/elements/Calendar/__snapshots__/MonthControl.test.tsx.snap b/src/components/Calendar/__snapshots__/MonthControl.test.tsx.snap
similarity index 100%
rename from src/components/elements/Calendar/__snapshots__/MonthControl.test.tsx.snap
rename to src/components/Calendar/__snapshots__/MonthControl.test.tsx.snap
diff --git a/src/components/elements/Calendar/__snapshots__/MonthView.test.tsx.snap b/src/components/Calendar/__snapshots__/MonthView.test.tsx.snap
similarity index 100%
rename from src/components/elements/Calendar/__snapshots__/MonthView.test.tsx.snap
rename to src/components/Calendar/__snapshots__/MonthView.test.tsx.snap
diff --git a/src/components/elements/Calendar/__snapshots__/YearControl.test.tsx.snap b/src/components/Calendar/__snapshots__/YearControl.test.tsx.snap
similarity index 100%
rename from src/components/elements/Calendar/__snapshots__/YearControl.test.tsx.snap
rename to src/components/Calendar/__snapshots__/YearControl.test.tsx.snap
diff --git a/src/components/elements/Calendar/index.ts b/src/components/Calendar/index.ts
similarity index 100%
rename from src/components/elements/Calendar/index.ts
rename to src/components/Calendar/index.ts
diff --git a/src/components/elements/Calendar/util.test.ts b/src/components/Calendar/util.test.ts
similarity index 100%
rename from src/components/elements/Calendar/util.test.ts
rename to src/components/Calendar/util.test.ts
diff --git a/src/components/elements/Calendar/util.ts b/src/components/Calendar/util.ts
similarity index 100%
rename from src/components/elements/Calendar/util.ts
rename to src/components/Calendar/util.ts
diff --git a/src/components/elements/textual/Currency/Currency.stories.tsx b/src/components/Currency/Currency.stories.tsx
similarity index 100%
rename from src/components/elements/textual/Currency/Currency.stories.tsx
rename to src/components/Currency/Currency.stories.tsx
diff --git a/src/components/elements/textual/Currency/Currency.test.tsx b/src/components/Currency/Currency.test.tsx
similarity index 100%
rename from src/components/elements/textual/Currency/Currency.test.tsx
rename to src/components/Currency/Currency.test.tsx
diff --git a/src/components/elements/textual/Currency/Currency.tsx b/src/components/Currency/Currency.tsx
similarity index 65%
rename from src/components/elements/textual/Currency/Currency.tsx
rename to src/components/Currency/Currency.tsx
index 0b2216bee..5b7fe0fe7 100644
--- a/src/components/elements/textual/Currency/Currency.tsx
+++ b/src/components/Currency/Currency.tsx
@@ -2,15 +2,15 @@ import React from 'react'
 
 import { Number, NumberProps } from '../Number/Number'
 
-export interface CurrencyLabelProps extends NumberProps {
+export interface CurrencyProps extends NumberProps {
   currency?: string
 }
 
-export function Currency(props: CurrencyLabelProps) {
+export function Currency(props: CurrencyProps) {
   const { currency, ...rest } = props
   return <Number formatOptions={{ style: 'currency', currency }} {...rest} />
 }
 
 Currency.defaultProps = {
   currency: 'USD',
-} as Partial<CurrencyLabelProps>
+} as Partial<CurrencyProps>
diff --git a/src/components/Currency/index.ts b/src/components/Currency/index.ts
new file mode 100644
index 000000000..b7925ef09
--- /dev/null
+++ b/src/components/Currency/index.ts
@@ -0,0 +1,1 @@
+export { Currency, CurrencyProps } from './Currency'
diff --git a/src/components/elements/Dropdown/Dropdown.tsx b/src/components/Dropdown/Dropdown.tsx
similarity index 96%
rename from src/components/elements/Dropdown/Dropdown.tsx
rename to src/components/Dropdown/Dropdown.tsx
index aeb827450..72202bb34 100644
--- a/src/components/elements/Dropdown/Dropdown.tsx
+++ b/src/components/Dropdown/Dropdown.tsx
@@ -1,9 +1,9 @@
 import { PopperOptions } from 'popper.js'
 import React, { useEffect, useRef } from 'react'
 
-import usePopper from '../../../hooks/usePopper'
-import { Theme, useStyles } from '../../../styles'
-import { randomStr } from '../../../util/string'
+import usePopper from '../../hooks/usePopper'
+import { Theme, useStyles } from '../../styles'
+import { randomStr } from '../../util/string'
 import { Portal } from '../Portal'
 
 import { DropdownMenu, DropdownMenuProps } from './DropdownMenu'
diff --git a/src/components/elements/Dropdown/DropdownButton.tsx b/src/components/Dropdown/DropdownButton.tsx
similarity index 97%
rename from src/components/elements/Dropdown/DropdownButton.tsx
rename to src/components/Dropdown/DropdownButton.tsx
index 7671a2a2e..81d0f610f 100644
--- a/src/components/elements/Dropdown/DropdownButton.tsx
+++ b/src/components/Dropdown/DropdownButton.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { PopperProps } from 'react-popper'
 
-import { Omit } from '../../../util/types'
+import { Omit } from '../../util/types'
 import { Button, ButtonProps } from '../Button'
 import { Tooltip } from '../Tooltip'
 
diff --git a/src/components/elements/Dropdown/DropdownDivider.test.tsx b/src/components/Dropdown/DropdownDivider.test.tsx
similarity index 100%
rename from src/components/elements/Dropdown/DropdownDivider.test.tsx
rename to src/components/Dropdown/DropdownDivider.test.tsx
diff --git a/src/components/elements/Dropdown/DropdownDivider.tsx b/src/components/Dropdown/DropdownDivider.tsx
similarity index 90%
rename from src/components/elements/Dropdown/DropdownDivider.tsx
rename to src/components/Dropdown/DropdownDivider.tsx
index 6f46e62e1..bf887998b 100644
--- a/src/components/elements/Dropdown/DropdownDivider.tsx
+++ b/src/components/Dropdown/DropdownDivider.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 
-import { Theme, useStyles } from '../../../styles'
+import { Theme, useStyles } from '../../styles'
 
 export interface DropdownDividerProps extends React.HtmlHTMLAttributes<HTMLLIElement> {}
 
diff --git a/src/components/elements/Dropdown/DropdownItem.test.tsx b/src/components/Dropdown/DropdownItem.test.tsx
similarity index 100%
rename from src/components/elements/Dropdown/DropdownItem.test.tsx
rename to src/components/Dropdown/DropdownItem.test.tsx
diff --git a/src/components/elements/Dropdown/DropdownItem.tsx b/src/components/Dropdown/DropdownItem.tsx
similarity index 96%
rename from src/components/elements/Dropdown/DropdownItem.tsx
rename to src/components/Dropdown/DropdownItem.tsx
index 560767c4d..6004e3e84 100644
--- a/src/components/elements/Dropdown/DropdownItem.tsx
+++ b/src/components/Dropdown/DropdownItem.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 
-import { focusBoxShadow, Theme, useStyles } from '../../../styles'
+import { focusBoxShadow, Theme, useStyles } from '../../styles'
 
 export interface DropdownItemProps extends React.HTMLAttributes<HTMLElement> {
   type?: 'normal' | 'danger'
diff --git a/src/components/elements/Dropdown/DropdownMenu.test.tsx b/src/components/Dropdown/DropdownMenu.test.tsx
similarity index 100%
rename from src/components/elements/Dropdown/DropdownMenu.test.tsx
rename to src/components/Dropdown/DropdownMenu.test.tsx
diff --git a/src/components/elements/Dropdown/DropdownMenu.tsx b/src/components/Dropdown/DropdownMenu.tsx
similarity index 81%
rename from src/components/elements/Dropdown/DropdownMenu.tsx
rename to src/components/Dropdown/DropdownMenu.tsx
index 651b03513..3d4c407be 100644
--- a/src/components/elements/Dropdown/DropdownMenu.tsx
+++ b/src/components/Dropdown/DropdownMenu.tsx
@@ -1,9 +1,9 @@
 import React from 'react'
 
-import { useRovingTabIndex } from '../../../hooks/useRovingTabIndex'
-import { ExternalStyles, Theme, useStyles } from '../../../styles'
-import { Omit } from '../../../util'
-import { composeRefs } from '../../../util/react'
+import { useRovingTabIndex } from '../../hooks/useRovingTabIndex'
+import { ExternalStyles, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util'
+import { composeRefs } from '../../util/react'
 
 export interface DropdownMenuProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'style'> {
   innerRef?: React.RefObject<HTMLUListElement>
diff --git a/src/components/elements/Dropdown/__snapshots__/Dropdown.test.tsx.snap b/src/components/Dropdown/__snapshots__/Dropdown.test.tsx.snap
similarity index 100%
rename from src/components/elements/Dropdown/__snapshots__/Dropdown.test.tsx.snap
rename to src/components/Dropdown/__snapshots__/Dropdown.test.tsx.snap
diff --git a/src/components/elements/Dropdown/__snapshots__/DropdownButton.test.tsx.snap b/src/components/Dropdown/__snapshots__/DropdownButton.test.tsx.snap
similarity index 100%
rename from src/components/elements/Dropdown/__snapshots__/DropdownButton.test.tsx.snap
rename to src/components/Dropdown/__snapshots__/DropdownButton.test.tsx.snap
diff --git a/src/components/elements/Dropdown/__snapshots__/DropdownDivider.test.tsx.snap b/src/components/Dropdown/__snapshots__/DropdownDivider.test.tsx.snap
similarity index 100%
rename from src/components/elements/Dropdown/__snapshots__/DropdownDivider.test.tsx.snap
rename to src/components/Dropdown/__snapshots__/DropdownDivider.test.tsx.snap
diff --git a/src/components/elements/Dropdown/__snapshots__/DropdownItem.test.tsx.snap b/src/components/Dropdown/__snapshots__/DropdownItem.test.tsx.snap
similarity index 100%
rename from src/components/elements/Dropdown/__snapshots__/DropdownItem.test.tsx.snap
rename to src/components/Dropdown/__snapshots__/DropdownItem.test.tsx.snap
diff --git a/src/components/elements/Dropdown/__snapshots__/DropdownMenu.test.tsx.snap b/src/components/Dropdown/__snapshots__/DropdownMenu.test.tsx.snap
similarity index 100%
rename from src/components/elements/Dropdown/__snapshots__/DropdownMenu.test.tsx.snap
rename to src/components/Dropdown/__snapshots__/DropdownMenu.test.tsx.snap
diff --git a/src/components/elements/Dropdown/index.ts b/src/components/Dropdown/index.ts
similarity index 100%
rename from src/components/elements/Dropdown/index.ts
rename to src/components/Dropdown/index.ts
diff --git a/src/components/elements/FileUploader/FileUploader.stories.tsx b/src/components/FileUploader/FileUploader.stories.tsx
similarity index 100%
rename from src/components/elements/FileUploader/FileUploader.stories.tsx
rename to src/components/FileUploader/FileUploader.stories.tsx
diff --git a/src/components/elements/FileUploader/FileUploader.test.tsx b/src/components/FileUploader/FileUploader.test.tsx
similarity index 100%
rename from src/components/elements/FileUploader/FileUploader.test.tsx
rename to src/components/FileUploader/FileUploader.test.tsx
diff --git a/src/components/elements/FileUploader/FileUploader.tsx b/src/components/FileUploader/FileUploader.tsx
similarity index 97%
rename from src/components/elements/FileUploader/FileUploader.tsx
rename to src/components/FileUploader/FileUploader.tsx
index c979edf4e..596491b00 100644
--- a/src/components/elements/FileUploader/FileUploader.tsx
+++ b/src/components/FileUploader/FileUploader.tsx
@@ -1,12 +1,12 @@
 import React, { CSSProperties } from 'react'
 import { DropzoneOptions, useDropzone } from 'react-dropzone'
 
-import { focusBoxShadow, Theme, useStyles, WithStylesProps } from '../../../styles'
-import { format } from '../../../util/byte'
+import { focusBoxShadow, Theme, useStyles, WithStylesProps } from '../../styles'
+import { format } from '../../util/byte'
 import { HFlow } from '../Flow'
 import { Icon } from '../Icon/Icon'
 import { Progress } from '../Progress/Progress'
-import { Text } from '../textual/Text/Text'
+import { Text } from '../Text'
 
 export interface FileUploaderProps extends DropzoneOptions {
   file?: FileProps
diff --git a/src/components/elements/FileUploader/__snapshots__/FileUploader.test.tsx.snap b/src/components/FileUploader/__snapshots__/FileUploader.test.tsx.snap
similarity index 100%
rename from src/components/elements/FileUploader/__snapshots__/FileUploader.test.tsx.snap
rename to src/components/FileUploader/__snapshots__/FileUploader.test.tsx.snap
diff --git a/src/components/elements/FileUploader/index.ts b/src/components/FileUploader/index.ts
similarity index 100%
rename from src/components/elements/FileUploader/index.ts
rename to src/components/FileUploader/index.ts
diff --git a/src/components/elements/Flow/Flow.stories.tsx b/src/components/Flow/Flow.stories.tsx
similarity index 95%
rename from src/components/elements/Flow/Flow.stories.tsx
rename to src/components/Flow/Flow.stories.tsx
index 0d5be8639..abc5db85c 100644
--- a/src/components/elements/Flow/Flow.stories.tsx
+++ b/src/components/Flow/Flow.stories.tsx
@@ -2,9 +2,9 @@ import { number, select } from '@storybook/addon-knobs'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { Icon } from '../../elements'
-import { Button } from '../../elements/Button'
+import { Button } from '../Button'
 import { AlignItems, JustifyContent } from '../Grid/Grid'
+import { Icon } from '../Icon'
 
 import { Flow, FlowProps } from './Flow'
 import { HFlow } from './HFlow'
diff --git a/src/components/elements/Flow/Flow.test.tsx b/src/components/Flow/Flow.test.tsx
similarity index 100%
rename from src/components/elements/Flow/Flow.test.tsx
rename to src/components/Flow/Flow.test.tsx
diff --git a/src/components/elements/Flow/Flow.tsx b/src/components/Flow/Flow.tsx
similarity index 96%
rename from src/components/elements/Flow/Flow.tsx
rename to src/components/Flow/Flow.tsx
index e3f4037dd..e3e893482 100644
--- a/src/components/elements/Flow/Flow.tsx
+++ b/src/components/Flow/Flow.tsx
@@ -1,6 +1,6 @@
 import React, { CSSProperties } from 'react'
 
-import { ExternalStyles, Theme, useStyles } from '../../../styles'
+import { ExternalStyles, Theme, useStyles } from '../../styles'
 import { AlignItems, JustifyContent } from '../Grid/Grid'
 
 export interface FlowProps {
diff --git a/src/components/elements/Flow/HFlow.test.tsx b/src/components/Flow/HFlow.test.tsx
similarity index 100%
rename from src/components/elements/Flow/HFlow.test.tsx
rename to src/components/Flow/HFlow.test.tsx
diff --git a/src/components/elements/Flow/HFlow.tsx b/src/components/Flow/HFlow.tsx
similarity index 100%
rename from src/components/elements/Flow/HFlow.tsx
rename to src/components/Flow/HFlow.tsx
diff --git a/src/components/elements/Flow/VFlow.test.tsx b/src/components/Flow/VFlow.test.tsx
similarity index 100%
rename from src/components/elements/Flow/VFlow.test.tsx
rename to src/components/Flow/VFlow.test.tsx
diff --git a/src/components/elements/Flow/VFlow.tsx b/src/components/Flow/VFlow.tsx
similarity index 100%
rename from src/components/elements/Flow/VFlow.tsx
rename to src/components/Flow/VFlow.tsx
diff --git a/src/components/elements/Flow/__snapshots__/Flow.test.tsx.snap b/src/components/Flow/__snapshots__/Flow.test.tsx.snap
similarity index 100%
rename from src/components/elements/Flow/__snapshots__/Flow.test.tsx.snap
rename to src/components/Flow/__snapshots__/Flow.test.tsx.snap
diff --git a/src/components/elements/Flow/__snapshots__/HFlow.test.tsx.snap b/src/components/Flow/__snapshots__/HFlow.test.tsx.snap
similarity index 100%
rename from src/components/elements/Flow/__snapshots__/HFlow.test.tsx.snap
rename to src/components/Flow/__snapshots__/HFlow.test.tsx.snap
diff --git a/src/components/elements/Flow/__snapshots__/VFlow.test.tsx.snap b/src/components/Flow/__snapshots__/VFlow.test.tsx.snap
similarity index 100%
rename from src/components/elements/Flow/__snapshots__/VFlow.test.tsx.snap
rename to src/components/Flow/__snapshots__/VFlow.test.tsx.snap
diff --git a/src/components/elements/Flow/index.ts b/src/components/Flow/index.ts
similarity index 100%
rename from src/components/elements/Flow/index.ts
rename to src/components/Flow/index.ts
diff --git a/src/components/elements/FocusManagerContainer/FocusManagerContainer.test.tsx b/src/components/FocusManagerContainer/FocusManagerContainer.test.tsx
similarity index 100%
rename from src/components/elements/FocusManagerContainer/FocusManagerContainer.test.tsx
rename to src/components/FocusManagerContainer/FocusManagerContainer.test.tsx
diff --git a/src/components/elements/FocusManagerContainer/FocusManagerContainer.tsx b/src/components/FocusManagerContainer/FocusManagerContainer.tsx
similarity index 100%
rename from src/components/elements/FocusManagerContainer/FocusManagerContainer.tsx
rename to src/components/FocusManagerContainer/FocusManagerContainer.tsx
diff --git a/src/components/elements/FocusManagerContainer/__snapshots__/FocusManagerContainer.test.tsx.snap b/src/components/FocusManagerContainer/__snapshots__/FocusManagerContainer.test.tsx.snap
similarity index 100%
rename from src/components/elements/FocusManagerContainer/__snapshots__/FocusManagerContainer.test.tsx.snap
rename to src/components/FocusManagerContainer/__snapshots__/FocusManagerContainer.test.tsx.snap
diff --git a/src/components/elements/FocusManagerContainer/index.ts b/src/components/FocusManagerContainer/index.ts
similarity index 100%
rename from src/components/elements/FocusManagerContainer/index.ts
rename to src/components/FocusManagerContainer/index.ts
diff --git a/src/components/elements/FormControl/FormControl.stories.tsx b/src/components/FormControl/FormControl.stories.tsx
similarity index 91%
rename from src/components/elements/FormControl/FormControl.stories.tsx
rename to src/components/FormControl/FormControl.stories.tsx
index e9366089d..089ac2a2d 100644
--- a/src/components/elements/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 '../form'
 
 import { FormControl } from './FormControl'
 
diff --git a/src/components/elements/FormControl/FormControl.test.tsx b/src/components/FormControl/FormControl.test.tsx
similarity index 100%
rename from src/components/elements/FormControl/FormControl.test.tsx
rename to src/components/FormControl/FormControl.test.tsx
diff --git a/src/components/elements/FormControl/FormControl.tsx b/src/components/FormControl/FormControl.tsx
similarity index 100%
rename from src/components/elements/FormControl/FormControl.tsx
rename to src/components/FormControl/FormControl.tsx
diff --git a/src/components/elements/FormControl/FormError.test.tsx b/src/components/FormControl/FormError.test.tsx
similarity index 100%
rename from src/components/elements/FormControl/FormError.test.tsx
rename to src/components/FormControl/FormError.test.tsx
diff --git a/src/components/elements/FormControl/FormError.tsx b/src/components/FormControl/FormError.tsx
similarity index 84%
rename from src/components/elements/FormControl/FormError.tsx
rename to src/components/FormControl/FormError.tsx
index fd21cdb22..26b9bf3fc 100644
--- a/src/components/elements/FormControl/FormError.tsx
+++ b/src/components/FormControl/FormError.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { ExternalStyles, Theme, useStyles } from '../../../styles'
-import { Omit } from '../../../util'
+import { ExternalStyles, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util'
 
 export interface FormErrorProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {
   style?: ExternalStyles
diff --git a/src/components/elements/FormControl/FormLabel.tsx b/src/components/FormControl/FormLabel.tsx
similarity index 84%
rename from src/components/elements/FormControl/FormLabel.tsx
rename to src/components/FormControl/FormLabel.tsx
index bad341ca0..9610dc8a1 100644
--- a/src/components/elements/FormControl/FormLabel.tsx
+++ b/src/components/FormControl/FormLabel.tsx
@@ -1,8 +1,8 @@
 import React, { CSSProperties } from 'react'
 
-import { useLocale } from '../../../locale'
-import { ExternalStyles, Theme, useStyles } from '../../../styles'
-import { Omit } from '../../../util/types'
+import { useLocale } from '../../locale'
+import { ExternalStyles, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util/types'
 
 export interface FormLabelProps extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, 'style'> {
   label: React.ReactNode
diff --git a/src/components/elements/FormControl/__snapshots__/FormControl.test.tsx.snap b/src/components/FormControl/__snapshots__/FormControl.test.tsx.snap
similarity index 100%
rename from src/components/elements/FormControl/__snapshots__/FormControl.test.tsx.snap
rename to src/components/FormControl/__snapshots__/FormControl.test.tsx.snap
diff --git a/src/components/elements/FormControl/__snapshots__/FormError.test.tsx.snap b/src/components/FormControl/__snapshots__/FormError.test.tsx.snap
similarity index 100%
rename from src/components/elements/FormControl/__snapshots__/FormError.test.tsx.snap
rename to src/components/FormControl/__snapshots__/FormError.test.tsx.snap
diff --git a/src/components/elements/FormControl/__snapshots__/FormLabel.test.tsx.snap b/src/components/FormControl/__snapshots__/FormLabel.test.tsx.snap
similarity index 100%
rename from src/components/elements/FormControl/__snapshots__/FormLabel.test.tsx.snap
rename to src/components/FormControl/__snapshots__/FormLabel.test.tsx.snap
diff --git a/src/components/elements/FormControl/index.ts b/src/components/FormControl/index.ts
similarity index 100%
rename from src/components/elements/FormControl/index.ts
rename to src/components/FormControl/index.ts
diff --git a/src/components/elements/Grid/Cell.test.tsx b/src/components/Grid/Cell.test.tsx
similarity index 100%
rename from src/components/elements/Grid/Cell.test.tsx
rename to src/components/Grid/Cell.test.tsx
diff --git a/src/components/elements/Grid/Cell.tsx b/src/components/Grid/Cell.tsx
similarity index 98%
rename from src/components/elements/Grid/Cell.tsx
rename to src/components/Grid/Cell.tsx
index ecaae8cd1..5ed96d45f 100644
--- a/src/components/elements/Grid/Cell.tsx
+++ b/src/components/Grid/Cell.tsx
@@ -1,7 +1,7 @@
 import React, { CSSProperties, useContext } from 'react'
 
-import { ExternalStyles, Theme, useStyles } from '../../../styles'
-import { Omit } from '../../../util'
+import { ExternalStyles, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util'
 
 import { Grid, GridContext, GridProps, GridResponsiveGap } from './Grid'
 
diff --git a/src/components/elements/Grid/Grid.stories.tsx b/src/components/Grid/Grid.stories.tsx
similarity index 96%
rename from src/components/elements/Grid/Grid.stories.tsx
rename to src/components/Grid/Grid.stories.tsx
index aaea30447..f50d45683 100644
--- a/src/components/elements/Grid/Grid.stories.tsx
+++ b/src/components/Grid/Grid.stories.tsx
@@ -3,8 +3,8 @@ import { storiesOf } from '@storybook/react'
 import React from 'react'
 
 import { AlignItems, AlignSelf, Cell as CellPure, Direction, Grid, JustifyContent } from '../'
-import { useBreakpoint } from '../../../hooks/useBreakpoint'
-import { useWindowSize } from '../../../hooks/useWindowSize'
+import { useBreakpoint } from '../../hooks/useBreakpoint'
+import { useWindowSize } from '../../hooks/useWindowSize'
 
 const styles = {
   box: {
diff --git a/src/components/elements/Grid/Grid.test.tsx b/src/components/Grid/Grid.test.tsx
similarity index 100%
rename from src/components/elements/Grid/Grid.test.tsx
rename to src/components/Grid/Grid.test.tsx
diff --git a/src/components/elements/Grid/Grid.tsx b/src/components/Grid/Grid.tsx
similarity index 98%
rename from src/components/elements/Grid/Grid.tsx
rename to src/components/Grid/Grid.tsx
index d2da131e1..6fb388b54 100644
--- a/src/components/elements/Grid/Grid.tsx
+++ b/src/components/Grid/Grid.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { Breakpoint, ExternalStyles, Theme, useStyles } from '../../../styles'
-import { Omit } from '../../../util'
+import { Breakpoint, ExternalStyles, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util'
 
 export type AlignItems = 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch'
 export type JustifyContent = 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'
diff --git a/src/components/elements/Grid/__snapshots__/Cell.test.tsx.snap b/src/components/Grid/__snapshots__/Cell.test.tsx.snap
similarity index 100%
rename from src/components/elements/Grid/__snapshots__/Cell.test.tsx.snap
rename to src/components/Grid/__snapshots__/Cell.test.tsx.snap
diff --git a/src/components/elements/Grid/__snapshots__/Grid.test.tsx.snap b/src/components/Grid/__snapshots__/Grid.test.tsx.snap
similarity index 100%
rename from src/components/elements/Grid/__snapshots__/Grid.test.tsx.snap
rename to src/components/Grid/__snapshots__/Grid.test.tsx.snap
diff --git a/src/components/elements/Grid/index.ts b/src/components/Grid/index.ts
similarity index 100%
rename from src/components/elements/Grid/index.ts
rename to src/components/Grid/index.ts
diff --git a/src/components/elements/textual/Heading/Heading.stories.tsx b/src/components/Heading/Heading.stories.tsx
similarity index 96%
rename from src/components/elements/textual/Heading/Heading.stories.tsx
rename to src/components/Heading/Heading.stories.tsx
index 40417f292..37b282a32 100644
--- a/src/components/elements/textual/Heading/Heading.stories.tsx
+++ b/src/components/Heading/Heading.stories.tsx
@@ -2,7 +2,7 @@ import { select } from '@storybook/addon-knobs'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { VFlow } from '../../Flow'
+import { VFlow } from '../Flow'
 import { colors } from '../Text/Text.stories'
 
 import { Heading } from './Heading'
diff --git a/src/components/elements/textual/Heading/Heading.test.tsx b/src/components/Heading/Heading.test.tsx
similarity index 100%
rename from src/components/elements/textual/Heading/Heading.test.tsx
rename to src/components/Heading/Heading.test.tsx
diff --git a/src/components/elements/textual/Heading/Heading.tsx b/src/components/Heading/Heading.tsx
similarity index 87%
rename from src/components/elements/textual/Heading/Heading.tsx
rename to src/components/Heading/Heading.tsx
index fbddaed33..9164c8b2d 100644
--- a/src/components/elements/textual/Heading/Heading.tsx
+++ b/src/components/Heading/Heading.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 
-import { Text, TextProps } from '../Text/Text'
+import { Text, TextProps } from '../Text'
 
 export interface HeadingProps extends TextProps {
   level: 1 | 2 | 3 | 4 | 5 | 6
diff --git a/src/components/elements/textual/Heading/__snapshots__/Heading.test.tsx.snap b/src/components/Heading/__snapshots__/Heading.test.tsx.snap
similarity index 100%
rename from src/components/elements/textual/Heading/__snapshots__/Heading.test.tsx.snap
rename to src/components/Heading/__snapshots__/Heading.test.tsx.snap
diff --git a/src/components/elements/textual/Heading/index.ts b/src/components/Heading/index.ts
similarity index 100%
rename from src/components/elements/textual/Heading/index.ts
rename to src/components/Heading/index.ts
diff --git a/src/components/elements/textual/HeadingSection/HeadingSection.stories.tsx b/src/components/HeadingSection/HeadingSection.stories.tsx
similarity index 95%
rename from src/components/elements/textual/HeadingSection/HeadingSection.stories.tsx
rename to src/components/HeadingSection/HeadingSection.stories.tsx
index 006a6cae7..ba525e419 100644
--- a/src/components/elements/textual/HeadingSection/HeadingSection.stories.tsx
+++ b/src/components/HeadingSection/HeadingSection.stories.tsx
@@ -2,7 +2,7 @@ import { select, text } from '@storybook/addon-knobs'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { VFlow } from '../../Flow'
+import { VFlow } from '../Flow'
 
 import { HeadingSection, HeadingSectionProps } from './HeadingSection'
 
diff --git a/src/components/elements/textual/HeadingSection/HeadingSection.test.tsx b/src/components/HeadingSection/HeadingSection.test.tsx
similarity index 100%
rename from src/components/elements/textual/HeadingSection/HeadingSection.test.tsx
rename to src/components/HeadingSection/HeadingSection.test.tsx
diff --git a/src/components/elements/textual/HeadingSection/HeadingSection.tsx b/src/components/HeadingSection/HeadingSection.tsx
similarity index 86%
rename from src/components/elements/textual/HeadingSection/HeadingSection.tsx
rename to src/components/HeadingSection/HeadingSection.tsx
index 9b7018a7c..77f278cbe 100644
--- a/src/components/elements/textual/HeadingSection/HeadingSection.tsx
+++ b/src/components/HeadingSection/HeadingSection.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { ExternalStyles, useStyles } from '../../../../styles'
-import { Heading, HeadingProps } from '../Heading/Heading'
+import { ExternalStyles, useStyles } from '../../styles'
+import { Heading, HeadingProps } from '../Heading'
 
 export interface HeadingSectionProps {
   title: React.ReactNode
diff --git a/src/components/elements/textual/HeadingSection/__snapshots__/HeadingSection.test.tsx.snap b/src/components/HeadingSection/__snapshots__/HeadingSection.test.tsx.snap
similarity index 100%
rename from src/components/elements/textual/HeadingSection/__snapshots__/HeadingSection.test.tsx.snap
rename to src/components/HeadingSection/__snapshots__/HeadingSection.test.tsx.snap
diff --git a/src/components/elements/textual/HeadingSection/index.ts b/src/components/HeadingSection/index.ts
similarity index 100%
rename from src/components/elements/textual/HeadingSection/index.ts
rename to src/components/HeadingSection/index.ts
diff --git a/src/components/elements/textual/Highlight/Highlight.stories.tsx b/src/components/Highlight/Highlight.stories.tsx
similarity index 100%
rename from src/components/elements/textual/Highlight/Highlight.stories.tsx
rename to src/components/Highlight/Highlight.stories.tsx
diff --git a/src/components/elements/textual/Highlight/Highlight.test.tsx b/src/components/Highlight/Highlight.test.tsx
similarity index 100%
rename from src/components/elements/textual/Highlight/Highlight.test.tsx
rename to src/components/Highlight/Highlight.test.tsx
diff --git a/src/components/elements/textual/Highlight/Highlight.tsx b/src/components/Highlight/Highlight.tsx
similarity index 100%
rename from src/components/elements/textual/Highlight/Highlight.tsx
rename to src/components/Highlight/Highlight.tsx
diff --git a/src/components/Highlight/index.ts b/src/components/Highlight/index.ts
new file mode 100644
index 000000000..4c9542bf0
--- /dev/null
+++ b/src/components/Highlight/index.ts
@@ -0,0 +1,1 @@
+export { Highlight, HighlightProps } from './Highlight'
diff --git a/src/components/elements/Icon/Icon.stories.tsx b/src/components/Icon/Icon.stories.tsx
similarity index 96%
rename from src/components/elements/Icon/Icon.stories.tsx
rename to src/components/Icon/Icon.stories.tsx
index 0cf98290a..0af5b308b 100644
--- a/src/components/elements/Icon/Icon.stories.tsx
+++ b/src/components/Icon/Icon.stories.tsx
@@ -3,7 +3,7 @@ import { storiesOf } from '@storybook/react'
 import React from 'react'
 
 import { Cell, Grid } from '../Grid'
-import { Text } from '../textual'
+import { Text } from '../Text'
 
 import { IconMap, Icons } from './generated/Icons'
 import { Icon, IconColor } from './Icon'
diff --git a/src/components/elements/Icon/Icon.test.tsx b/src/components/Icon/Icon.test.tsx
similarity index 100%
rename from src/components/elements/Icon/Icon.test.tsx
rename to src/components/Icon/Icon.test.tsx
diff --git a/src/components/elements/Icon/Icon.tsx b/src/components/Icon/Icon.tsx
similarity index 84%
rename from src/components/elements/Icon/Icon.tsx
rename to src/components/Icon/Icon.tsx
index 78efbdced..2c23d76d6 100644
--- a/src/components/elements/Icon/Icon.tsx
+++ b/src/components/Icon/Icon.tsx
@@ -1,8 +1,8 @@
 import React from 'react'
 
-import { ExternalStyles, TextColor, useStyles } from '../../../styles'
-import { getTextColor, Theme } from '../../../styles/theme/createTheme'
-import { Omit } from '../../../util/types'
+import { ExternalStyles, TextColor, useStyles } from '../../styles'
+import { getTextColor, Theme } from '../../styles/theme/createTheme'
+import { Omit } from '../../util/types'
 
 import { IconMap, Icons } from './generated/Icons'
 
diff --git a/src/components/elements/Icon/__snapshots__/Icon.test.tsx.snap b/src/components/Icon/__snapshots__/Icon.test.tsx.snap
similarity index 100%
rename from src/components/elements/Icon/__snapshots__/Icon.test.tsx.snap
rename to src/components/Icon/__snapshots__/Icon.test.tsx.snap
diff --git a/src/components/elements/Icon/generated/Adjust.tsx b/src/components/Icon/generated/Adjust.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Adjust.tsx
rename to src/components/Icon/generated/Adjust.tsx
diff --git a/src/components/elements/Icon/generated/AlignCenter.tsx b/src/components/Icon/generated/AlignCenter.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/AlignCenter.tsx
rename to src/components/Icon/generated/AlignCenter.tsx
diff --git a/src/components/elements/Icon/generated/AlignJustify.tsx b/src/components/Icon/generated/AlignJustify.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/AlignJustify.tsx
rename to src/components/Icon/generated/AlignJustify.tsx
diff --git a/src/components/elements/Icon/generated/AlignLeft.tsx b/src/components/Icon/generated/AlignLeft.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/AlignLeft.tsx
rename to src/components/Icon/generated/AlignLeft.tsx
diff --git a/src/components/elements/Icon/generated/AlignRight.tsx b/src/components/Icon/generated/AlignRight.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/AlignRight.tsx
rename to src/components/Icon/generated/AlignRight.tsx
diff --git a/src/components/elements/Icon/generated/AngleDoubleLeft.tsx b/src/components/Icon/generated/AngleDoubleLeft.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/AngleDoubleLeft.tsx
rename to src/components/Icon/generated/AngleDoubleLeft.tsx
diff --git a/src/components/elements/Icon/generated/AngleDoubleRight.tsx b/src/components/Icon/generated/AngleDoubleRight.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/AngleDoubleRight.tsx
rename to src/components/Icon/generated/AngleDoubleRight.tsx
diff --git a/src/components/elements/Icon/generated/AngleDown.tsx b/src/components/Icon/generated/AngleDown.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/AngleDown.tsx
rename to src/components/Icon/generated/AngleDown.tsx
diff --git a/src/components/elements/Icon/generated/AngleLeft.tsx b/src/components/Icon/generated/AngleLeft.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/AngleLeft.tsx
rename to src/components/Icon/generated/AngleLeft.tsx
diff --git a/src/components/elements/Icon/generated/AngleRight.tsx b/src/components/Icon/generated/AngleRight.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/AngleRight.tsx
rename to src/components/Icon/generated/AngleRight.tsx
diff --git a/src/components/elements/Icon/generated/AngleUp.tsx b/src/components/Icon/generated/AngleUp.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/AngleUp.tsx
rename to src/components/Icon/generated/AngleUp.tsx
diff --git a/src/components/elements/Icon/generated/ArchiveFilled.tsx b/src/components/Icon/generated/ArchiveFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ArchiveFilled.tsx
rename to src/components/Icon/generated/ArchiveFilled.tsx
diff --git a/src/components/elements/Icon/generated/ArchiveOutline.tsx b/src/components/Icon/generated/ArchiveOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ArchiveOutline.tsx
rename to src/components/Icon/generated/ArchiveOutline.tsx
diff --git a/src/components/elements/Icon/generated/ArrowDown.tsx b/src/components/Icon/generated/ArrowDown.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ArrowDown.tsx
rename to src/components/Icon/generated/ArrowDown.tsx
diff --git a/src/components/elements/Icon/generated/ArrowLeft.tsx b/src/components/Icon/generated/ArrowLeft.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ArrowLeft.tsx
rename to src/components/Icon/generated/ArrowLeft.tsx
diff --git a/src/components/elements/Icon/generated/ArrowRight.tsx b/src/components/Icon/generated/ArrowRight.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ArrowRight.tsx
rename to src/components/Icon/generated/ArrowRight.tsx
diff --git a/src/components/elements/Icon/generated/ArrowUp.tsx b/src/components/Icon/generated/ArrowUp.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ArrowUp.tsx
rename to src/components/Icon/generated/ArrowUp.tsx
diff --git a/src/components/elements/Icon/generated/BalanceFilled.tsx b/src/components/Icon/generated/BalanceFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BalanceFilled.tsx
rename to src/components/Icon/generated/BalanceFilled.tsx
diff --git a/src/components/elements/Icon/generated/BalanceOutline.tsx b/src/components/Icon/generated/BalanceOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BalanceOutline.tsx
rename to src/components/Icon/generated/BalanceOutline.tsx
diff --git a/src/components/elements/Icon/generated/BanFilled.tsx b/src/components/Icon/generated/BanFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BanFilled.tsx
rename to src/components/Icon/generated/BanFilled.tsx
diff --git a/src/components/elements/Icon/generated/BanOutline.tsx b/src/components/Icon/generated/BanOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BanOutline.tsx
rename to src/components/Icon/generated/BanOutline.tsx
diff --git a/src/components/elements/Icon/generated/BandaidFilled.tsx b/src/components/Icon/generated/BandaidFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BandaidFilled.tsx
rename to src/components/Icon/generated/BandaidFilled.tsx
diff --git a/src/components/elements/Icon/generated/BandaidOutline.tsx b/src/components/Icon/generated/BandaidOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BandaidOutline.tsx
rename to src/components/Icon/generated/BandaidOutline.tsx
diff --git a/src/components/elements/Icon/generated/BatteryFull.tsx b/src/components/Icon/generated/BatteryFull.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BatteryFull.tsx
rename to src/components/Icon/generated/BatteryFull.tsx
diff --git a/src/components/elements/Icon/generated/BatteryLow.tsx b/src/components/Icon/generated/BatteryLow.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BatteryLow.tsx
rename to src/components/Icon/generated/BatteryLow.tsx
diff --git a/src/components/elements/Icon/generated/BatteryMedium.tsx b/src/components/Icon/generated/BatteryMedium.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BatteryMedium.tsx
rename to src/components/Icon/generated/BatteryMedium.tsx
diff --git a/src/components/elements/Icon/generated/Beach.tsx b/src/components/Icon/generated/Beach.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Beach.tsx
rename to src/components/Icon/generated/Beach.tsx
diff --git a/src/components/elements/Icon/generated/BellFilled.tsx b/src/components/Icon/generated/BellFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BellFilled.tsx
rename to src/components/Icon/generated/BellFilled.tsx
diff --git a/src/components/elements/Icon/generated/BellOutline.tsx b/src/components/Icon/generated/BellOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BellOutline.tsx
rename to src/components/Icon/generated/BellOutline.tsx
diff --git a/src/components/elements/Icon/generated/BloodPressureFilled.tsx b/src/components/Icon/generated/BloodPressureFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BloodPressureFilled.tsx
rename to src/components/Icon/generated/BloodPressureFilled.tsx
diff --git a/src/components/elements/Icon/generated/BloodPressureOutline.tsx b/src/components/Icon/generated/BloodPressureOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BloodPressureOutline.tsx
rename to src/components/Icon/generated/BloodPressureOutline.tsx
diff --git a/src/components/elements/Icon/generated/Bold.tsx b/src/components/Icon/generated/Bold.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Bold.tsx
rename to src/components/Icon/generated/Bold.tsx
diff --git a/src/components/elements/Icon/generated/BookmarkFilled.tsx b/src/components/Icon/generated/BookmarkFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BookmarkFilled.tsx
rename to src/components/Icon/generated/BookmarkFilled.tsx
diff --git a/src/components/elements/Icon/generated/BookmarkOutline.tsx b/src/components/Icon/generated/BookmarkOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BookmarkOutline.tsx
rename to src/components/Icon/generated/BookmarkOutline.tsx
diff --git a/src/components/elements/Icon/generated/BoxFilled.tsx b/src/components/Icon/generated/BoxFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BoxFilled.tsx
rename to src/components/Icon/generated/BoxFilled.tsx
diff --git a/src/components/elements/Icon/generated/BoxOutline.tsx b/src/components/Icon/generated/BoxOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BoxOutline.tsx
rename to src/components/Icon/generated/BoxOutline.tsx
diff --git a/src/components/elements/Icon/generated/BricksFilled.tsx b/src/components/Icon/generated/BricksFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BricksFilled.tsx
rename to src/components/Icon/generated/BricksFilled.tsx
diff --git a/src/components/elements/Icon/generated/BricksOutline.tsx b/src/components/Icon/generated/BricksOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/BricksOutline.tsx
rename to src/components/Icon/generated/BricksOutline.tsx
diff --git a/src/components/elements/Icon/generated/CalendarFilled.tsx b/src/components/Icon/generated/CalendarFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/CalendarFilled.tsx
rename to src/components/Icon/generated/CalendarFilled.tsx
diff --git a/src/components/elements/Icon/generated/CalendarOutline.tsx b/src/components/Icon/generated/CalendarOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/CalendarOutline.tsx
rename to src/components/Icon/generated/CalendarOutline.tsx
diff --git a/src/components/elements/Icon/generated/CameraFilled.tsx b/src/components/Icon/generated/CameraFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/CameraFilled.tsx
rename to src/components/Icon/generated/CameraFilled.tsx
diff --git a/src/components/elements/Icon/generated/CameraOutline.tsx b/src/components/Icon/generated/CameraOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/CameraOutline.tsx
rename to src/components/Icon/generated/CameraOutline.tsx
diff --git a/src/components/elements/Icon/generated/ChatFilled.tsx b/src/components/Icon/generated/ChatFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ChatFilled.tsx
rename to src/components/Icon/generated/ChatFilled.tsx
diff --git a/src/components/elements/Icon/generated/ChatOutline.tsx b/src/components/Icon/generated/ChatOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ChatOutline.tsx
rename to src/components/Icon/generated/ChatOutline.tsx
diff --git a/src/components/elements/Icon/generated/CheckCircleFilled.tsx b/src/components/Icon/generated/CheckCircleFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/CheckCircleFilled.tsx
rename to src/components/Icon/generated/CheckCircleFilled.tsx
diff --git a/src/components/elements/Icon/generated/CheckCircleOutline.tsx b/src/components/Icon/generated/CheckCircleOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/CheckCircleOutline.tsx
rename to src/components/Icon/generated/CheckCircleOutline.tsx
diff --git a/src/components/elements/Icon/generated/CheckDefault.tsx b/src/components/Icon/generated/CheckDefault.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/CheckDefault.tsx
rename to src/components/Icon/generated/CheckDefault.tsx
diff --git a/src/components/elements/Icon/generated/ClearFormat.tsx b/src/components/Icon/generated/ClearFormat.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ClearFormat.tsx
rename to src/components/Icon/generated/ClearFormat.tsx
diff --git a/src/components/elements/Icon/generated/Clip.tsx b/src/components/Icon/generated/Clip.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Clip.tsx
rename to src/components/Icon/generated/Clip.tsx
diff --git a/src/components/elements/Icon/generated/ClockFilled.tsx b/src/components/Icon/generated/ClockFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ClockFilled.tsx
rename to src/components/Icon/generated/ClockFilled.tsx
diff --git a/src/components/elements/Icon/generated/ClockOutline.tsx b/src/components/Icon/generated/ClockOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ClockOutline.tsx
rename to src/components/Icon/generated/ClockOutline.tsx
diff --git a/src/components/elements/Icon/generated/CloudFilled.tsx b/src/components/Icon/generated/CloudFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/CloudFilled.tsx
rename to src/components/Icon/generated/CloudFilled.tsx
diff --git a/src/components/elements/Icon/generated/CloudOutline.tsx b/src/components/Icon/generated/CloudOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/CloudOutline.tsx
rename to src/components/Icon/generated/CloudOutline.tsx
diff --git a/src/components/elements/Icon/generated/Code.tsx b/src/components/Icon/generated/Code.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Code.tsx
rename to src/components/Icon/generated/Code.tsx
diff --git a/src/components/elements/Icon/generated/Contrast.tsx b/src/components/Icon/generated/Contrast.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Contrast.tsx
rename to src/components/Icon/generated/Contrast.tsx
diff --git a/src/components/elements/Icon/generated/ContrastActive.tsx b/src/components/Icon/generated/ContrastActive.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ContrastActive.tsx
rename to src/components/Icon/generated/ContrastActive.tsx
diff --git a/src/components/elements/Icon/generated/CopyFilled.tsx b/src/components/Icon/generated/CopyFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/CopyFilled.tsx
rename to src/components/Icon/generated/CopyFilled.tsx
diff --git a/src/components/elements/Icon/generated/CopyOutline.tsx b/src/components/Icon/generated/CopyOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/CopyOutline.tsx
rename to src/components/Icon/generated/CopyOutline.tsx
diff --git a/src/components/elements/Icon/generated/CreditCardFilled.tsx b/src/components/Icon/generated/CreditCardFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/CreditCardFilled.tsx
rename to src/components/Icon/generated/CreditCardFilled.tsx
diff --git a/src/components/elements/Icon/generated/CreditCardOutline.tsx b/src/components/Icon/generated/CreditCardOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/CreditCardOutline.tsx
rename to src/components/Icon/generated/CreditCardOutline.tsx
diff --git a/src/components/elements/Icon/generated/DataFilled.tsx b/src/components/Icon/generated/DataFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/DataFilled.tsx
rename to src/components/Icon/generated/DataFilled.tsx
diff --git a/src/components/elements/Icon/generated/DataOutline.tsx b/src/components/Icon/generated/DataOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/DataOutline.tsx
rename to src/components/Icon/generated/DataOutline.tsx
diff --git a/src/components/elements/Icon/generated/DecreaseFont.tsx b/src/components/Icon/generated/DecreaseFont.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/DecreaseFont.tsx
rename to src/components/Icon/generated/DecreaseFont.tsx
diff --git a/src/components/elements/Icon/generated/DesktopFilled.tsx b/src/components/Icon/generated/DesktopFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/DesktopFilled.tsx
rename to src/components/Icon/generated/DesktopFilled.tsx
diff --git a/src/components/elements/Icon/generated/DesktopOutline.tsx b/src/components/Icon/generated/DesktopOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/DesktopOutline.tsx
rename to src/components/Icon/generated/DesktopOutline.tsx
diff --git a/src/components/elements/Icon/generated/Dots.tsx b/src/components/Icon/generated/Dots.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Dots.tsx
rename to src/components/Icon/generated/Dots.tsx
diff --git a/src/components/elements/Icon/generated/Download.tsx b/src/components/Icon/generated/Download.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Download.tsx
rename to src/components/Icon/generated/Download.tsx
diff --git a/src/components/elements/Icon/generated/EmailFilled.tsx b/src/components/Icon/generated/EmailFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/EmailFilled.tsx
rename to src/components/Icon/generated/EmailFilled.tsx
diff --git a/src/components/elements/Icon/generated/EmailOutline.tsx b/src/components/Icon/generated/EmailOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/EmailOutline.tsx
rename to src/components/Icon/generated/EmailOutline.tsx
diff --git a/src/components/elements/Icon/generated/ExclamationDefault.tsx b/src/components/Icon/generated/ExclamationDefault.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ExclamationDefault.tsx
rename to src/components/Icon/generated/ExclamationDefault.tsx
diff --git a/src/components/elements/Icon/generated/ExclamationTriangleFilled.tsx b/src/components/Icon/generated/ExclamationTriangleFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ExclamationTriangleFilled.tsx
rename to src/components/Icon/generated/ExclamationTriangleFilled.tsx
diff --git a/src/components/elements/Icon/generated/ExclamationTriangleOutline.tsx b/src/components/Icon/generated/ExclamationTriangleOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ExclamationTriangleOutline.tsx
rename to src/components/Icon/generated/ExclamationTriangleOutline.tsx
diff --git a/src/components/elements/Icon/generated/Expand.tsx b/src/components/Icon/generated/Expand.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Expand.tsx
rename to src/components/Icon/generated/Expand.tsx
diff --git a/src/components/elements/Icon/generated/EyeFilled.tsx b/src/components/Icon/generated/EyeFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/EyeFilled.tsx
rename to src/components/Icon/generated/EyeFilled.tsx
diff --git a/src/components/elements/Icon/generated/EyeHiddenFilled.tsx b/src/components/Icon/generated/EyeHiddenFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/EyeHiddenFilled.tsx
rename to src/components/Icon/generated/EyeHiddenFilled.tsx
diff --git a/src/components/elements/Icon/generated/EyeHiddenOutline.tsx b/src/components/Icon/generated/EyeHiddenOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/EyeHiddenOutline.tsx
rename to src/components/Icon/generated/EyeHiddenOutline.tsx
diff --git a/src/components/elements/Icon/generated/EyeOutline.tsx b/src/components/Icon/generated/EyeOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/EyeOutline.tsx
rename to src/components/Icon/generated/EyeOutline.tsx
diff --git a/src/components/elements/Icon/generated/FileEmptyFilled.tsx b/src/components/Icon/generated/FileEmptyFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/FileEmptyFilled.tsx
rename to src/components/Icon/generated/FileEmptyFilled.tsx
diff --git a/src/components/elements/Icon/generated/FileEmptyOutline.tsx b/src/components/Icon/generated/FileEmptyOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/FileEmptyOutline.tsx
rename to src/components/Icon/generated/FileEmptyOutline.tsx
diff --git a/src/components/elements/Icon/generated/FileWithItensFilled.tsx b/src/components/Icon/generated/FileWithItensFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/FileWithItensFilled.tsx
rename to src/components/Icon/generated/FileWithItensFilled.tsx
diff --git a/src/components/elements/Icon/generated/FileWithItensOutline.tsx b/src/components/Icon/generated/FileWithItensOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/FileWithItensOutline.tsx
rename to src/components/Icon/generated/FileWithItensOutline.tsx
diff --git a/src/components/elements/Icon/generated/FilterFilled.tsx b/src/components/Icon/generated/FilterFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/FilterFilled.tsx
rename to src/components/Icon/generated/FilterFilled.tsx
diff --git a/src/components/elements/Icon/generated/FilterOutline.tsx b/src/components/Icon/generated/FilterOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/FilterOutline.tsx
rename to src/components/Icon/generated/FilterOutline.tsx
diff --git a/src/components/elements/Icon/generated/FolderFilled.tsx b/src/components/Icon/generated/FolderFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/FolderFilled.tsx
rename to src/components/Icon/generated/FolderFilled.tsx
diff --git a/src/components/elements/Icon/generated/FolderOutline.tsx b/src/components/Icon/generated/FolderOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/FolderOutline.tsx
rename to src/components/Icon/generated/FolderOutline.tsx
diff --git a/src/components/elements/Icon/generated/GearFilled.tsx b/src/components/Icon/generated/GearFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/GearFilled.tsx
rename to src/components/Icon/generated/GearFilled.tsx
diff --git a/src/components/elements/Icon/generated/GearOutline.tsx b/src/components/Icon/generated/GearOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/GearOutline.tsx
rename to src/components/Icon/generated/GearOutline.tsx
diff --git a/src/components/elements/Icon/generated/HamburguerMenu.tsx b/src/components/Icon/generated/HamburguerMenu.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/HamburguerMenu.tsx
rename to src/components/Icon/generated/HamburguerMenu.tsx
diff --git a/src/components/elements/Icon/generated/HeartFilled.tsx b/src/components/Icon/generated/HeartFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/HeartFilled.tsx
rename to src/components/Icon/generated/HeartFilled.tsx
diff --git a/src/components/elements/Icon/generated/HeartOutline.tsx b/src/components/Icon/generated/HeartOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/HeartOutline.tsx
rename to src/components/Icon/generated/HeartOutline.tsx
diff --git a/src/components/elements/Icon/generated/HeartRateFilled.tsx b/src/components/Icon/generated/HeartRateFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/HeartRateFilled.tsx
rename to src/components/Icon/generated/HeartRateFilled.tsx
diff --git a/src/components/elements/Icon/generated/HeartRateOutline.tsx b/src/components/Icon/generated/HeartRateOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/HeartRateOutline.tsx
rename to src/components/Icon/generated/HeartRateOutline.tsx
diff --git a/src/components/elements/Icon/generated/Hospital.tsx b/src/components/Icon/generated/Hospital.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Hospital.tsx
rename to src/components/Icon/generated/Hospital.tsx
diff --git a/src/components/elements/Icon/generated/HouseFilled.tsx b/src/components/Icon/generated/HouseFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/HouseFilled.tsx
rename to src/components/Icon/generated/HouseFilled.tsx
diff --git a/src/components/elements/Icon/generated/HouseOutline.tsx b/src/components/Icon/generated/HouseOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/HouseOutline.tsx
rename to src/components/Icon/generated/HouseOutline.tsx
diff --git a/src/components/elements/Icon/generated/Icons.ts b/src/components/Icon/generated/Icons.ts
similarity index 100%
rename from src/components/elements/Icon/generated/Icons.ts
rename to src/components/Icon/generated/Icons.ts
diff --git a/src/components/elements/Icon/generated/ImageFilled.tsx b/src/components/Icon/generated/ImageFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ImageFilled.tsx
rename to src/components/Icon/generated/ImageFilled.tsx
diff --git a/src/components/elements/Icon/generated/ImageOutline.tsx b/src/components/Icon/generated/ImageOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ImageOutline.tsx
rename to src/components/Icon/generated/ImageOutline.tsx
diff --git a/src/components/elements/Icon/generated/ImcFilled.tsx b/src/components/Icon/generated/ImcFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ImcFilled.tsx
rename to src/components/Icon/generated/ImcFilled.tsx
diff --git a/src/components/elements/Icon/generated/IncreaseFont.tsx b/src/components/Icon/generated/IncreaseFont.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/IncreaseFont.tsx
rename to src/components/Icon/generated/IncreaseFont.tsx
diff --git a/src/components/elements/Icon/generated/InfoCircleFilled.tsx b/src/components/Icon/generated/InfoCircleFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/InfoCircleFilled.tsx
rename to src/components/Icon/generated/InfoCircleFilled.tsx
diff --git a/src/components/elements/Icon/generated/InfoCircleOutline.tsx b/src/components/Icon/generated/InfoCircleOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/InfoCircleOutline.tsx
rename to src/components/Icon/generated/InfoCircleOutline.tsx
diff --git a/src/components/elements/Icon/generated/InfoDefault.tsx b/src/components/Icon/generated/InfoDefault.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/InfoDefault.tsx
rename to src/components/Icon/generated/InfoDefault.tsx
diff --git a/src/components/elements/Icon/generated/Italic.tsx b/src/components/Icon/generated/Italic.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Italic.tsx
rename to src/components/Icon/generated/Italic.tsx
diff --git a/src/components/elements/Icon/generated/KeyFilled.tsx b/src/components/Icon/generated/KeyFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/KeyFilled.tsx
rename to src/components/Icon/generated/KeyFilled.tsx
diff --git a/src/components/elements/Icon/generated/KeyOutline.tsx b/src/components/Icon/generated/KeyOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/KeyOutline.tsx
rename to src/components/Icon/generated/KeyOutline.tsx
diff --git a/src/components/elements/Icon/generated/LightbulbFilled.tsx b/src/components/Icon/generated/LightbulbFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/LightbulbFilled.tsx
rename to src/components/Icon/generated/LightbulbFilled.tsx
diff --git a/src/components/elements/Icon/generated/LightbulbOutline.tsx b/src/components/Icon/generated/LightbulbOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/LightbulbOutline.tsx
rename to src/components/Icon/generated/LightbulbOutline.tsx
diff --git a/src/components/elements/Icon/generated/Link.tsx b/src/components/Icon/generated/Link.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Link.tsx
rename to src/components/Icon/generated/Link.tsx
diff --git a/src/components/elements/Icon/generated/List.tsx b/src/components/Icon/generated/List.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/List.tsx
rename to src/components/Icon/generated/List.tsx
diff --git a/src/components/elements/Icon/generated/LockCloseFilled.tsx b/src/components/Icon/generated/LockCloseFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/LockCloseFilled.tsx
rename to src/components/Icon/generated/LockCloseFilled.tsx
diff --git a/src/components/elements/Icon/generated/LockCloseOutline.tsx b/src/components/Icon/generated/LockCloseOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/LockCloseOutline.tsx
rename to src/components/Icon/generated/LockCloseOutline.tsx
diff --git a/src/components/elements/Icon/generated/LockOpenFilled.tsx b/src/components/Icon/generated/LockOpenFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/LockOpenFilled.tsx
rename to src/components/Icon/generated/LockOpenFilled.tsx
diff --git a/src/components/elements/Icon/generated/LockOpenFilledCopy.tsx b/src/components/Icon/generated/LockOpenFilledCopy.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/LockOpenFilledCopy.tsx
rename to src/components/Icon/generated/LockOpenFilledCopy.tsx
diff --git a/src/components/elements/Icon/generated/MapFilled.tsx b/src/components/Icon/generated/MapFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/MapFilled.tsx
rename to src/components/Icon/generated/MapFilled.tsx
diff --git a/src/components/elements/Icon/generated/MapMarkerFilled.tsx b/src/components/Icon/generated/MapMarkerFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/MapMarkerFilled.tsx
rename to src/components/Icon/generated/MapMarkerFilled.tsx
diff --git a/src/components/elements/Icon/generated/MapMarkerOutlined.tsx b/src/components/Icon/generated/MapMarkerOutlined.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/MapMarkerOutlined.tsx
rename to src/components/Icon/generated/MapMarkerOutlined.tsx
diff --git a/src/components/elements/Icon/generated/MapOutline.tsx b/src/components/Icon/generated/MapOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/MapOutline.tsx
rename to src/components/Icon/generated/MapOutline.tsx
diff --git a/src/components/elements/Icon/generated/MicrophoneFilled.tsx b/src/components/Icon/generated/MicrophoneFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/MicrophoneFilled.tsx
rename to src/components/Icon/generated/MicrophoneFilled.tsx
diff --git a/src/components/elements/Icon/generated/MicrophoneOutline.tsx b/src/components/Icon/generated/MicrophoneOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/MicrophoneOutline.tsx
rename to src/components/Icon/generated/MicrophoneOutline.tsx
diff --git a/src/components/elements/Icon/generated/Minimize.tsx b/src/components/Icon/generated/Minimize.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Minimize.tsx
rename to src/components/Icon/generated/Minimize.tsx
diff --git a/src/components/elements/Icon/generated/Minus.tsx b/src/components/Icon/generated/Minus.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Minus.tsx
rename to src/components/Icon/generated/Minus.tsx
diff --git a/src/components/elements/Icon/generated/Module.tsx b/src/components/Icon/generated/Module.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Module.tsx
rename to src/components/Icon/generated/Module.tsx
diff --git a/src/components/elements/Icon/generated/MultipleUsers.tsx b/src/components/Icon/generated/MultipleUsers.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/MultipleUsers.tsx
rename to src/components/Icon/generated/MultipleUsers.tsx
diff --git a/src/components/elements/Icon/generated/NeedleFilled.tsx b/src/components/Icon/generated/NeedleFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/NeedleFilled.tsx
rename to src/components/Icon/generated/NeedleFilled.tsx
diff --git a/src/components/elements/Icon/generated/NeedleOutline.tsx b/src/components/Icon/generated/NeedleOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/NeedleOutline.tsx
rename to src/components/Icon/generated/NeedleOutline.tsx
diff --git a/src/components/elements/Icon/generated/O2Filled.tsx b/src/components/Icon/generated/O2Filled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/O2Filled.tsx
rename to src/components/Icon/generated/O2Filled.tsx
diff --git a/src/components/elements/Icon/generated/OpenDoor.tsx b/src/components/Icon/generated/OpenDoor.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/OpenDoor.tsx
rename to src/components/Icon/generated/OpenDoor.tsx
diff --git a/src/components/elements/Icon/generated/Outline.tsx b/src/components/Icon/generated/Outline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Outline.tsx
rename to src/components/Icon/generated/Outline.tsx
diff --git a/src/components/elements/Icon/generated/Pause.tsx b/src/components/Icon/generated/Pause.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Pause.tsx
rename to src/components/Icon/generated/Pause.tsx
diff --git a/src/components/elements/Icon/generated/PenFilled.tsx b/src/components/Icon/generated/PenFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PenFilled.tsx
rename to src/components/Icon/generated/PenFilled.tsx
diff --git a/src/components/elements/Icon/generated/PenOutline.tsx b/src/components/Icon/generated/PenOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PenOutline.tsx
rename to src/components/Icon/generated/PenOutline.tsx
diff --git a/src/components/elements/Icon/generated/PenTool.tsx b/src/components/Icon/generated/PenTool.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PenTool.tsx
rename to src/components/Icon/generated/PenTool.tsx
diff --git a/src/components/elements/Icon/generated/PhoneFilled.tsx b/src/components/Icon/generated/PhoneFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PhoneFilled.tsx
rename to src/components/Icon/generated/PhoneFilled.tsx
diff --git a/src/components/elements/Icon/generated/PhoneOutline.tsx b/src/components/Icon/generated/PhoneOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PhoneOutline.tsx
rename to src/components/Icon/generated/PhoneOutline.tsx
diff --git a/src/components/elements/Icon/generated/PillFilled.tsx b/src/components/Icon/generated/PillFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PillFilled.tsx
rename to src/components/Icon/generated/PillFilled.tsx
diff --git a/src/components/elements/Icon/generated/PillOutline.tsx b/src/components/Icon/generated/PillOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PillOutline.tsx
rename to src/components/Icon/generated/PillOutline.tsx
diff --git a/src/components/elements/Icon/generated/PlayFilled.tsx b/src/components/Icon/generated/PlayFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PlayFilled.tsx
rename to src/components/Icon/generated/PlayFilled.tsx
diff --git a/src/components/elements/Icon/generated/PlayOutline.tsx b/src/components/Icon/generated/PlayOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PlayOutline.tsx
rename to src/components/Icon/generated/PlayOutline.tsx
diff --git a/src/components/elements/Icon/generated/Plus.tsx b/src/components/Icon/generated/Plus.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Plus.tsx
rename to src/components/Icon/generated/Plus.tsx
diff --git a/src/components/elements/Icon/generated/PollFilled.tsx b/src/components/Icon/generated/PollFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PollFilled.tsx
rename to src/components/Icon/generated/PollFilled.tsx
diff --git a/src/components/elements/Icon/generated/PollOutline.tsx b/src/components/Icon/generated/PollOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PollOutline.tsx
rename to src/components/Icon/generated/PollOutline.tsx
diff --git a/src/components/elements/Icon/generated/PresentationFilled.tsx b/src/components/Icon/generated/PresentationFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PresentationFilled.tsx
rename to src/components/Icon/generated/PresentationFilled.tsx
diff --git a/src/components/elements/Icon/generated/PresentationOutline.tsx b/src/components/Icon/generated/PresentationOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PresentationOutline.tsx
rename to src/components/Icon/generated/PresentationOutline.tsx
diff --git a/src/components/elements/Icon/generated/PrinterFilled.tsx b/src/components/Icon/generated/PrinterFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PrinterFilled.tsx
rename to src/components/Icon/generated/PrinterFilled.tsx
diff --git a/src/components/elements/Icon/generated/PrinterOutline.tsx b/src/components/Icon/generated/PrinterOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/PrinterOutline.tsx
rename to src/components/Icon/generated/PrinterOutline.tsx
diff --git a/src/components/elements/Icon/generated/QuestionMarkFilled.tsx b/src/components/Icon/generated/QuestionMarkFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/QuestionMarkFilled.tsx
rename to src/components/Icon/generated/QuestionMarkFilled.tsx
diff --git a/src/components/elements/Icon/generated/QuoteLeft.tsx b/src/components/Icon/generated/QuoteLeft.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/QuoteLeft.tsx
rename to src/components/Icon/generated/QuoteLeft.tsx
diff --git a/src/components/elements/Icon/generated/QuoteRight.tsx b/src/components/Icon/generated/QuoteRight.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/QuoteRight.tsx
rename to src/components/Icon/generated/QuoteRight.tsx
diff --git a/src/components/elements/Icon/generated/Redo.tsx b/src/components/Icon/generated/Redo.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Redo.tsx
rename to src/components/Icon/generated/Redo.tsx
diff --git a/src/components/elements/Icon/generated/Rocket.tsx b/src/components/Icon/generated/Rocket.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Rocket.tsx
rename to src/components/Icon/generated/Rocket.tsx
diff --git a/src/components/elements/Icon/generated/RulerFilled.tsx b/src/components/Icon/generated/RulerFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/RulerFilled.tsx
rename to src/components/Icon/generated/RulerFilled.tsx
diff --git a/src/components/elements/Icon/generated/RulerOutline.tsx b/src/components/Icon/generated/RulerOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/RulerOutline.tsx
rename to src/components/Icon/generated/RulerOutline.tsx
diff --git a/src/components/elements/Icon/generated/ShieldFilled.tsx b/src/components/Icon/generated/ShieldFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ShieldFilled.tsx
rename to src/components/Icon/generated/ShieldFilled.tsx
diff --git a/src/components/elements/Icon/generated/ShieldOutline.tsx b/src/components/Icon/generated/ShieldOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ShieldOutline.tsx
rename to src/components/Icon/generated/ShieldOutline.tsx
diff --git a/src/components/elements/Icon/generated/SignOut.tsx b/src/components/Icon/generated/SignOut.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/SignOut.tsx
rename to src/components/Icon/generated/SignOut.tsx
diff --git a/src/components/elements/Icon/generated/Sort.tsx b/src/components/Icon/generated/Sort.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Sort.tsx
rename to src/components/Icon/generated/Sort.tsx
diff --git a/src/components/elements/Icon/generated/StarFilled.tsx b/src/components/Icon/generated/StarFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/StarFilled.tsx
rename to src/components/Icon/generated/StarFilled.tsx
diff --git a/src/components/elements/Icon/generated/StarOutline.tsx b/src/components/Icon/generated/StarOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/StarOutline.tsx
rename to src/components/Icon/generated/StarOutline.tsx
diff --git a/src/components/elements/Icon/generated/StethoscopeFilled.tsx b/src/components/Icon/generated/StethoscopeFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/StethoscopeFilled.tsx
rename to src/components/Icon/generated/StethoscopeFilled.tsx
diff --git a/src/components/elements/Icon/generated/StethoscopeOutline.tsx b/src/components/Icon/generated/StethoscopeOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/StethoscopeOutline.tsx
rename to src/components/Icon/generated/StethoscopeOutline.tsx
diff --git a/src/components/elements/Icon/generated/StopFilled.tsx b/src/components/Icon/generated/StopFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/StopFilled.tsx
rename to src/components/Icon/generated/StopFilled.tsx
diff --git a/src/components/elements/Icon/generated/StopOutline.tsx b/src/components/Icon/generated/StopOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/StopOutline.tsx
rename to src/components/Icon/generated/StopOutline.tsx
diff --git a/src/components/elements/Icon/generated/Strikethrough.tsx b/src/components/Icon/generated/Strikethrough.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Strikethrough.tsx
rename to src/components/Icon/generated/Strikethrough.tsx
diff --git a/src/components/elements/Icon/generated/Sync.tsx b/src/components/Icon/generated/Sync.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Sync.tsx
rename to src/components/Icon/generated/Sync.tsx
diff --git a/src/components/elements/Icon/generated/ThermometerFilled.tsx b/src/components/Icon/generated/ThermometerFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ThermometerFilled.tsx
rename to src/components/Icon/generated/ThermometerFilled.tsx
diff --git a/src/components/elements/Icon/generated/ThermometerOutline.tsx b/src/components/Icon/generated/ThermometerOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ThermometerOutline.tsx
rename to src/components/Icon/generated/ThermometerOutline.tsx
diff --git a/src/components/elements/Icon/generated/TimerFilled.tsx b/src/components/Icon/generated/TimerFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/TimerFilled.tsx
rename to src/components/Icon/generated/TimerFilled.tsx
diff --git a/src/components/elements/Icon/generated/TimerOutlined.tsx b/src/components/Icon/generated/TimerOutlined.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/TimerOutlined.tsx
rename to src/components/Icon/generated/TimerOutlined.tsx
diff --git a/src/components/elements/Icon/generated/TimesDefault.tsx b/src/components/Icon/generated/TimesDefault.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/TimesDefault.tsx
rename to src/components/Icon/generated/TimesDefault.tsx
diff --git a/src/components/elements/Icon/generated/TimesFilled.tsx b/src/components/Icon/generated/TimesFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/TimesFilled.tsx
rename to src/components/Icon/generated/TimesFilled.tsx
diff --git a/src/components/elements/Icon/generated/TimesOutline.tsx b/src/components/Icon/generated/TimesOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/TimesOutline.tsx
rename to src/components/Icon/generated/TimesOutline.tsx
diff --git a/src/components/elements/Icon/generated/TrashFilled.tsx b/src/components/Icon/generated/TrashFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/TrashFilled.tsx
rename to src/components/Icon/generated/TrashFilled.tsx
diff --git a/src/components/elements/Icon/generated/TrashOutline.tsx b/src/components/Icon/generated/TrashOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/TrashOutline.tsx
rename to src/components/Icon/generated/TrashOutline.tsx
diff --git a/src/components/elements/Icon/generated/Underline.tsx b/src/components/Icon/generated/Underline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Underline.tsx
rename to src/components/Icon/generated/Underline.tsx
diff --git a/src/components/elements/Icon/generated/Upload.tsx b/src/components/Icon/generated/Upload.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Upload.tsx
rename to src/components/Icon/generated/Upload.tsx
diff --git a/src/components/elements/Icon/generated/UserBan.tsx b/src/components/Icon/generated/UserBan.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/UserBan.tsx
rename to src/components/Icon/generated/UserBan.tsx
diff --git a/src/components/elements/Icon/generated/UserCard.tsx b/src/components/Icon/generated/UserCard.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/UserCard.tsx
rename to src/components/Icon/generated/UserCard.tsx
diff --git a/src/components/elements/Icon/generated/UserCheck.tsx b/src/components/Icon/generated/UserCheck.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/UserCheck.tsx
rename to src/components/Icon/generated/UserCheck.tsx
diff --git a/src/components/elements/Icon/generated/UserFilled.tsx b/src/components/Icon/generated/UserFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/UserFilled.tsx
rename to src/components/Icon/generated/UserFilled.tsx
diff --git a/src/components/elements/Icon/generated/UserOutline.tsx b/src/components/Icon/generated/UserOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/UserOutline.tsx
rename to src/components/Icon/generated/UserOutline.tsx
diff --git a/src/components/elements/Icon/generated/UserTimes.tsx b/src/components/Icon/generated/UserTimes.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/UserTimes.tsx
rename to src/components/Icon/generated/UserTimes.tsx
diff --git a/src/components/elements/Icon/generated/VideoFilled.tsx b/src/components/Icon/generated/VideoFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/VideoFilled.tsx
rename to src/components/Icon/generated/VideoFilled.tsx
diff --git a/src/components/elements/Icon/generated/VideoOutline.tsx b/src/components/Icon/generated/VideoOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/VideoOutline.tsx
rename to src/components/Icon/generated/VideoOutline.tsx
diff --git a/src/components/elements/Icon/generated/VolumeFilled.tsx b/src/components/Icon/generated/VolumeFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/VolumeFilled.tsx
rename to src/components/Icon/generated/VolumeFilled.tsx
diff --git a/src/components/elements/Icon/generated/VolumeMuteFilled.tsx b/src/components/Icon/generated/VolumeMuteFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/VolumeMuteFilled.tsx
rename to src/components/Icon/generated/VolumeMuteFilled.tsx
diff --git a/src/components/elements/Icon/generated/VolumeMuteOutline.tsx b/src/components/Icon/generated/VolumeMuteOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/VolumeMuteOutline.tsx
rename to src/components/Icon/generated/VolumeMuteOutline.tsx
diff --git a/src/components/elements/Icon/generated/VolumeOutline.tsx b/src/components/Icon/generated/VolumeOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/VolumeOutline.tsx
rename to src/components/Icon/generated/VolumeOutline.tsx
diff --git a/src/components/elements/Icon/generated/Wifi.tsx b/src/components/Icon/generated/Wifi.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/Wifi.tsx
rename to src/components/Icon/generated/Wifi.tsx
diff --git a/src/components/elements/Icon/generated/ZoomMinusFilled.tsx b/src/components/Icon/generated/ZoomMinusFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ZoomMinusFilled.tsx
rename to src/components/Icon/generated/ZoomMinusFilled.tsx
diff --git a/src/components/elements/Icon/generated/ZoomMinusOutline.tsx b/src/components/Icon/generated/ZoomMinusOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ZoomMinusOutline.tsx
rename to src/components/Icon/generated/ZoomMinusOutline.tsx
diff --git a/src/components/elements/Icon/generated/ZoomOutline.tsx b/src/components/Icon/generated/ZoomOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ZoomOutline.tsx
rename to src/components/Icon/generated/ZoomOutline.tsx
diff --git a/src/components/elements/Icon/generated/ZoomPlusFilled.tsx b/src/components/Icon/generated/ZoomPlusFilled.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ZoomPlusFilled.tsx
rename to src/components/Icon/generated/ZoomPlusFilled.tsx
diff --git a/src/components/elements/Icon/generated/ZoomPlusOutline.tsx b/src/components/Icon/generated/ZoomPlusOutline.tsx
similarity index 100%
rename from src/components/elements/Icon/generated/ZoomPlusOutline.tsx
rename to src/components/Icon/generated/ZoomPlusOutline.tsx
diff --git a/src/components/elements/Icon/index.ts b/src/components/Icon/index.ts
similarity index 100%
rename from src/components/elements/Icon/index.ts
rename to src/components/Icon/index.ts
diff --git a/src/components/elements/InfoLabel/InfoLabel.stories.tsx b/src/components/InfoLabel/InfoLabel.stories.tsx
similarity index 100%
rename from src/components/elements/InfoLabel/InfoLabel.stories.tsx
rename to src/components/InfoLabel/InfoLabel.stories.tsx
diff --git a/src/components/elements/InfoLabel/InfoLabel.test.tsx b/src/components/InfoLabel/InfoLabel.test.tsx
similarity index 100%
rename from src/components/elements/InfoLabel/InfoLabel.test.tsx
rename to src/components/InfoLabel/InfoLabel.test.tsx
diff --git a/src/components/elements/InfoLabel/InfoLabel.tsx b/src/components/InfoLabel/InfoLabel.tsx
similarity index 94%
rename from src/components/elements/InfoLabel/InfoLabel.tsx
rename to src/components/InfoLabel/InfoLabel.tsx
index 5eb990b45..e0f929e1c 100644
--- a/src/components/elements/InfoLabel/InfoLabel.tsx
+++ b/src/components/InfoLabel/InfoLabel.tsx
@@ -1,6 +1,6 @@
 import React, { CSSProperties } from 'react'
 
-import { Theme, useStyles } from '../../../styles'
+import { Theme, useStyles } from '../../styles'
 
 export interface InfoLabelProps {
   title: string
diff --git a/src/components/elements/InfoLabel/__snapshots__/InfoLabel.test.tsx.snap b/src/components/InfoLabel/__snapshots__/InfoLabel.test.tsx.snap
similarity index 100%
rename from src/components/elements/InfoLabel/__snapshots__/InfoLabel.test.tsx.snap
rename to src/components/InfoLabel/__snapshots__/InfoLabel.test.tsx.snap
diff --git a/src/components/elements/InfoLabel/index.ts b/src/components/InfoLabel/index.ts
similarity index 100%
rename from src/components/elements/InfoLabel/index.ts
rename to src/components/InfoLabel/index.ts
diff --git a/src/components/elements/Link/Link.stories.tsx b/src/components/Link/Link.stories.tsx
similarity index 100%
rename from src/components/elements/Link/Link.stories.tsx
rename to src/components/Link/Link.stories.tsx
diff --git a/src/components/elements/Link/Link.test.tsx b/src/components/Link/Link.test.tsx
similarity index 100%
rename from src/components/elements/Link/Link.test.tsx
rename to src/components/Link/Link.test.tsx
diff --git a/src/components/elements/Link/Link.tsx b/src/components/Link/Link.tsx
similarity index 82%
rename from src/components/elements/Link/Link.tsx
rename to src/components/Link/Link.tsx
index 2a2371564..5789bc449 100644
--- a/src/components/elements/Link/Link.tsx
+++ b/src/components/Link/Link.tsx
@@ -1,8 +1,8 @@
 import React, { AnchorHTMLAttributes, CSSProperties } from 'react'
 
-import { focusBoxShadow, Theme, useStyles } from '../../../styles'
-import { Omit } from '../../../util'
-import { BaseTextProps, Text } from '../textual'
+import { focusBoxShadow, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util'
+import { BaseTextProps, Text } from '../Text'
 
 export type LinkProps = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'style'> & BaseTextProps
 
diff --git a/src/components/elements/Modal/Modal.tsx b/src/components/Modal/Modal.tsx
similarity index 98%
rename from src/components/elements/Modal/Modal.tsx
rename to src/components/Modal/Modal.tsx
index e7a8de7d3..105b2ddfd 100644
--- a/src/components/elements/Modal/Modal.tsx
+++ b/src/components/Modal/Modal.tsx
@@ -1,7 +1,7 @@
 import FocusTrap from 'focus-trap-react'
 import React, { useEffect } from 'react'
 
-import { Theme, useStyles } from '../../../styles'
+import { Theme, useStyles } from '../../styles'
 import { Portal } from '../Portal'
 import { FadeTransition } from '../Transition/FadeTransition'
 
diff --git a/src/components/elements/Modal/ModalBackdrop.test.tsx b/src/components/Modal/ModalBackdrop.test.tsx
similarity index 100%
rename from src/components/elements/Modal/ModalBackdrop.test.tsx
rename to src/components/Modal/ModalBackdrop.test.tsx
diff --git a/src/components/elements/Modal/ModalBackdrop.tsx b/src/components/Modal/ModalBackdrop.tsx
similarity index 93%
rename from src/components/elements/Modal/ModalBackdrop.tsx
rename to src/components/Modal/ModalBackdrop.tsx
index 7af2fe818..c30095317 100644
--- a/src/components/elements/Modal/ModalBackdrop.tsx
+++ b/src/components/Modal/ModalBackdrop.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { ExternalStyles, hexToRGB, Theme, useStyles } from '../../../styles'
-import { Omit } from '../../../util'
+import { ExternalStyles, hexToRGB, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util'
 
 export interface ModalBackdropProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {
   style?: ExternalStyles
diff --git a/src/components/elements/Modal/ModalBody.test.tsx b/src/components/Modal/ModalBody.test.tsx
similarity index 100%
rename from src/components/elements/Modal/ModalBody.test.tsx
rename to src/components/Modal/ModalBody.test.tsx
diff --git a/src/components/elements/Modal/ModalBody.tsx b/src/components/Modal/ModalBody.tsx
similarity index 82%
rename from src/components/elements/Modal/ModalBody.tsx
rename to src/components/Modal/ModalBody.tsx
index 56bfeb6a7..be3feac22 100644
--- a/src/components/elements/Modal/ModalBody.tsx
+++ b/src/components/Modal/ModalBody.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { ExternalStyles, useStyles } from '../../../styles'
-import { Omit } from '../../../util'
+import { ExternalStyles, useStyles } from '../../styles'
+import { Omit } from '../../util'
 
 export interface ModalBodyProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {
   style?: ExternalStyles
diff --git a/src/components/elements/Modal/ModalContainer.tsx b/src/components/Modal/ModalContainer.tsx
similarity index 91%
rename from src/components/elements/Modal/ModalContainer.tsx
rename to src/components/Modal/ModalContainer.tsx
index 2355d4672..6feb2106b 100644
--- a/src/components/elements/Modal/ModalContainer.tsx
+++ b/src/components/Modal/ModalContainer.tsx
@@ -1,8 +1,8 @@
 import React from 'react'
 
-import { useLocale } from '../../../locale'
-import { ExternalStyles, Theme, useStyles } from '../../../styles'
-import { Omit } from '../../../util'
+import { useLocale } from '../../locale'
+import { ExternalStyles, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util'
 import { Button } from '../Button'
 import { Icon } from '../Icon'
 import { Tooltip } from '../Tooltip'
diff --git a/src/components/elements/Modal/ModalFooter.test.tsx b/src/components/Modal/ModalFooter.test.tsx
similarity index 100%
rename from src/components/elements/Modal/ModalFooter.test.tsx
rename to src/components/Modal/ModalFooter.test.tsx
diff --git a/src/components/elements/Modal/ModalFooter.tsx b/src/components/Modal/ModalFooter.tsx
similarity index 86%
rename from src/components/elements/Modal/ModalFooter.tsx
rename to src/components/Modal/ModalFooter.tsx
index 900e5add8..6f6f33a03 100644
--- a/src/components/elements/Modal/ModalFooter.tsx
+++ b/src/components/Modal/ModalFooter.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { ExternalStyles, useStyles } from '../../../styles'
-import { Omit } from '../../../util'
+import { ExternalStyles, useStyles } from '../../styles'
+import { Omit } from '../../util'
 
 export interface ModalFooterProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {
   style?: ExternalStyles
diff --git a/src/components/elements/Modal/auto/ModalAuto.tsx b/src/components/Modal/auto/ModalAuto.tsx
similarity index 100%
rename from src/components/elements/Modal/auto/ModalAuto.tsx
rename to src/components/Modal/auto/ModalAuto.tsx
diff --git a/src/components/elements/Modal/auto/ModalMountTarget.test.tsx b/src/components/Modal/auto/ModalMountTarget.test.tsx
similarity index 100%
rename from src/components/elements/Modal/auto/ModalMountTarget.test.tsx
rename to src/components/Modal/auto/ModalMountTarget.test.tsx
diff --git a/src/components/elements/Modal/auto/ModalMountTarget.tsx b/src/components/Modal/auto/ModalMountTarget.tsx
similarity index 100%
rename from src/components/elements/Modal/auto/ModalMountTarget.tsx
rename to src/components/Modal/auto/ModalMountTarget.tsx
diff --git a/src/components/elements/Modal/auto/ModalStore.test.tsx b/src/components/Modal/auto/ModalStore.test.tsx
similarity index 100%
rename from src/components/elements/Modal/auto/ModalStore.test.tsx
rename to src/components/Modal/auto/ModalStore.test.tsx
diff --git a/src/components/Modal/auto/ModalStore.ts b/src/components/Modal/auto/ModalStore.ts
new file mode 100644
index 000000000..344ef97e3
--- /dev/null
+++ b/src/components/Modal/auto/ModalStore.ts
@@ -0,0 +1,65 @@
+import { Observable } from '../../../util/Observable'
+
+export interface ModalStoreItem {
+  key: string
+  component: React.ReactNode
+}
+
+export interface ModalStoreState {
+  items: ModalStoreItem[]
+}
+
+export interface ModalStoreAppendProps {
+  dispose(): void
+}
+
+export type ModalStoreRenderFn = (props: ModalStoreAppendProps) => React.ReactNode
+
+export class ModalStore extends Observable<ModalStoreState> {
+  private value: ModalStoreState = {
+    items: [],
+  }
+
+  notify(value: ModalStoreState) {
+    if (process.env.NODE_ENV === 'development' && this.listeners.length === 0) {
+      // tslint:disable-next-line no-console
+      console.warn(
+        `No listeners to the modal store change. ` +
+          `Maybe you need to include a <ModalMountTarget /> in your application.`
+      )
+    }
+
+    super.notify(value)
+  }
+
+  append(render: ModalStoreRenderFn) {
+    const key = Math.random()
+      .toString(36)
+      .substring(2)
+
+    const component = render({
+      dispose: this.dispose(key),
+    })
+
+    this.value = {
+      ...this.value,
+      items: [...this.value.items, { key, component }],
+    }
+
+    this.notify(this.value)
+
+    return key
+  }
+
+  private dispose(key: ModalStoreItem['key']) {
+    return () => {
+      this.value = {
+        ...this.value,
+        items: this.value.items.filter(item => item.key !== key),
+      }
+      this.notify(this.value)
+    }
+  }
+}
+
+export default new ModalStore()
diff --git a/src/components/elements/Modal/auto/__snapshots__/ModalAuto.test.tsx.snap b/src/components/Modal/auto/__snapshots__/ModalAuto.test.tsx.snap
similarity index 100%
rename from src/components/elements/Modal/auto/__snapshots__/ModalAuto.test.tsx.snap
rename to src/components/Modal/auto/__snapshots__/ModalAuto.test.tsx.snap
diff --git a/src/components/elements/Modal/auto/__snapshots__/ModalMountTarget.test.tsx.snap b/src/components/Modal/auto/__snapshots__/ModalMountTarget.test.tsx.snap
similarity index 100%
rename from src/components/elements/Modal/auto/__snapshots__/ModalMountTarget.test.tsx.snap
rename to src/components/Modal/auto/__snapshots__/ModalMountTarget.test.tsx.snap
diff --git a/src/components/elements/Modal/auto/index.tsx b/src/components/Modal/auto/index.tsx
similarity index 92%
rename from src/components/elements/Modal/auto/index.tsx
rename to src/components/Modal/auto/index.tsx
index a93c43e9a..482e912bc 100644
--- a/src/components/elements/Modal/auto/index.tsx
+++ b/src/components/Modal/auto/index.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 
-import { Omit } from '../../../../util/types'
+import { Omit } from '../../../util/types'
 
 import { ModalAuto, ModalAutoProps } from './ModalAuto'
 import defaultStore, { ModalStore, ModalStoreAppendProps } from './ModalStore'
diff --git a/src/components/elements/Modal/index.ts b/src/components/Modal/index.ts
similarity index 100%
rename from src/components/elements/Modal/index.ts
rename to src/components/Modal/index.ts
diff --git a/src/components/elements/MonthPicker/MonthPicker.stories.tsx b/src/components/MonthPicker/MonthPicker.stories.tsx
similarity index 100%
rename from src/components/elements/MonthPicker/MonthPicker.stories.tsx
rename to src/components/MonthPicker/MonthPicker.stories.tsx
diff --git a/src/components/elements/MonthPicker/MonthPicker/MonthPicker.test.tsx b/src/components/MonthPicker/MonthPicker/MonthPicker.test.tsx
similarity index 100%
rename from src/components/elements/MonthPicker/MonthPicker/MonthPicker.test.tsx
rename to src/components/MonthPicker/MonthPicker/MonthPicker.test.tsx
diff --git a/src/components/elements/MonthPicker/MonthPicker/MonthPicker.tsx b/src/components/MonthPicker/MonthPicker/MonthPicker.tsx
similarity index 95%
rename from src/components/elements/MonthPicker/MonthPicker/MonthPicker.tsx
rename to src/components/MonthPicker/MonthPicker/MonthPicker.tsx
index 004d478f5..e7f561884 100644
--- a/src/components/elements/MonthPicker/MonthPicker/MonthPicker.tsx
+++ b/src/components/MonthPicker/MonthPicker/MonthPicker.tsx
@@ -1,12 +1,12 @@
 import { css } from 'emotion'
 import React, { CSSProperties, useEffect, useState } from 'react'
 
-import { useLocale } from '../../../../locale'
-import { Theme, useStyles } from '../../../../styles'
+import { useLocale } from '../../../locale'
+import { Theme, useStyles } from '../../../styles'
 import { Button } from '../../Button'
 import { HFlow, VFlow } from '../../Flow'
 import { Icon } from '../../Icon'
-import { Text } from '../../textual'
+import { Text } from '../../Text'
 
 export interface MonthPickerProps {
   month: number
diff --git a/src/components/elements/MonthPicker/MonthPicker/__snapshots__/MonthPicker.test.tsx.snap b/src/components/MonthPicker/MonthPicker/__snapshots__/MonthPicker.test.tsx.snap
similarity index 100%
rename from src/components/elements/MonthPicker/MonthPicker/__snapshots__/MonthPicker.test.tsx.snap
rename to src/components/MonthPicker/MonthPicker/__snapshots__/MonthPicker.test.tsx.snap
diff --git a/src/components/elements/MonthPicker/MonthPickerInput/MonthPickerInput.test.tsx b/src/components/MonthPicker/MonthPickerInput/MonthPickerInput.test.tsx
similarity index 100%
rename from src/components/elements/MonthPicker/MonthPickerInput/MonthPickerInput.test.tsx
rename to src/components/MonthPicker/MonthPickerInput/MonthPickerInput.test.tsx
diff --git a/src/components/elements/MonthPicker/MonthPickerInput/MonthPickerInput.tsx b/src/components/MonthPicker/MonthPickerInput/MonthPickerInput.tsx
similarity index 94%
rename from src/components/elements/MonthPicker/MonthPickerInput/MonthPickerInput.tsx
rename to src/components/MonthPicker/MonthPickerInput/MonthPickerInput.tsx
index 3e31c4cdb..0e93dc36f 100644
--- a/src/components/elements/MonthPicker/MonthPickerInput/MonthPickerInput.tsx
+++ b/src/components/MonthPicker/MonthPickerInput/MonthPickerInput.tsx
@@ -1,8 +1,8 @@
 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 { Omit } from '../../../util'
+import { MaskedInput, MaskedInputProps } from '../../form/input/MaskedInput/MaskedInput'
 import { Popper, PopperController } from '../../Popper'
 import { MonthPicker, ReferenceMonth } from '../MonthPicker/MonthPicker'
 
diff --git a/src/components/elements/MonthPicker/MonthPickerInput/__snapshots__/MonthPickerInput.test.tsx.snap b/src/components/MonthPicker/MonthPickerInput/__snapshots__/MonthPickerInput.test.tsx.snap
similarity index 100%
rename from src/components/elements/MonthPicker/MonthPickerInput/__snapshots__/MonthPickerInput.test.tsx.snap
rename to src/components/MonthPicker/MonthPickerInput/__snapshots__/MonthPickerInput.test.tsx.snap
diff --git a/src/components/elements/MonthPicker/index.ts b/src/components/MonthPicker/index.ts
similarity index 100%
rename from src/components/elements/MonthPicker/index.ts
rename to src/components/MonthPicker/index.ts
diff --git a/src/components/elements/textual/Number/Number.stories.tsx b/src/components/Number/Number.stories.tsx
similarity index 100%
rename from src/components/elements/textual/Number/Number.stories.tsx
rename to src/components/Number/Number.stories.tsx
diff --git a/src/components/elements/textual/Number/Number.test.tsx b/src/components/Number/Number.test.tsx
similarity index 100%
rename from src/components/elements/textual/Number/Number.test.tsx
rename to src/components/Number/Number.test.tsx
diff --git a/src/components/elements/textual/Number/Number.tsx b/src/components/Number/Number.tsx
similarity index 94%
rename from src/components/elements/textual/Number/Number.tsx
rename to src/components/Number/Number.tsx
index b3680ae9a..021257aa9 100644
--- a/src/components/elements/textual/Number/Number.tsx
+++ b/src/components/Number/Number.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 
-import * as numberUtil from '../../../../util/number'
+import * as numberUtil from '../../util/number'
 
 export interface NumberProps {
   value: number
diff --git a/src/components/Number/index.ts b/src/components/Number/index.ts
new file mode 100644
index 000000000..850812a13
--- /dev/null
+++ b/src/components/Number/index.ts
@@ -0,0 +1,1 @@
+export { Number, NumberProps } from './Number'
diff --git a/src/components/elements/Paginator/Paginator.tsx b/src/components/Paginator/Paginator.tsx
similarity index 94%
rename from src/components/elements/Paginator/Paginator.tsx
rename to src/components/Paginator/Paginator.tsx
index 6116efb7f..6ac07049a 100644
--- a/src/components/elements/Paginator/Paginator.tsx
+++ b/src/components/Paginator/Paginator.tsx
@@ -1,11 +1,11 @@
 import React, { CSSProperties, useEffect, useState } from 'react'
 
-import { useLocale } from '../../../locale'
-import { Theme, useStyles } from '../../../styles'
-import { TextInput } from '../../form/input/TextInput/TextInput'
+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 '../textual'
+import { Text } from '../Text'
 
 export interface PaginatorProps {
   /**
diff --git a/src/components/elements/Paginator/__snapshots__/Paginator.test.tsx.snap b/src/components/Paginator/__snapshots__/Paginator.test.tsx.snap
similarity index 100%
rename from src/components/elements/Paginator/__snapshots__/Paginator.test.tsx.snap
rename to src/components/Paginator/__snapshots__/Paginator.test.tsx.snap
diff --git a/src/components/elements/Paginator/index.ts b/src/components/Paginator/index.ts
similarity index 100%
rename from src/components/elements/Paginator/index.ts
rename to src/components/Paginator/index.ts
diff --git a/src/components/elements/Paper/Paper.stories.tsx b/src/components/Paper/Paper.stories.tsx
similarity index 78%
rename from src/components/elements/Paper/Paper.stories.tsx
rename to src/components/Paper/Paper.stories.tsx
index 172066cfc..5075c4185 100644
--- a/src/components/elements/Paper/Paper.stories.tsx
+++ b/src/components/Paper/Paper.stories.tsx
@@ -1,8 +1,8 @@
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { Heading } from '../textual/Heading/Heading'
-import { Text } from '../textual/Text/Text'
+import { Heading } from '../Heading'
+import { Text } from '../Text'
 
 import { Paper } from './Paper'
 
diff --git a/src/components/elements/Paper/Paper.test.tsx b/src/components/Paper/Paper.test.tsx
similarity index 100%
rename from src/components/elements/Paper/Paper.test.tsx
rename to src/components/Paper/Paper.test.tsx
diff --git a/src/components/elements/Paper/Paper.tsx b/src/components/Paper/Paper.tsx
similarity index 78%
rename from src/components/elements/Paper/Paper.tsx
rename to src/components/Paper/Paper.tsx
index b953cebfe..0e0d9aac0 100644
--- a/src/components/elements/Paper/Paper.tsx
+++ b/src/components/Paper/Paper.tsx
@@ -1,8 +1,8 @@
 import React from 'react'
 
-import { ExternalStyles, Theme, useStyles } from '../../../styles'
-import { OuterShadows } from '../../../styles/theme/createShadows'
-import { Omit } from '../../../util'
+import { ExternalStyles, Theme, useStyles } from '../../styles'
+import { OuterShadows } from '../../styles/theme/createShadows'
+import { Omit } from '../../util'
 
 export interface PaperProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {
   elevation?: keyof OuterShadows
diff --git a/src/components/elements/Paper/__snapshots__/Paper.test.tsx.snap b/src/components/Paper/__snapshots__/Paper.test.tsx.snap
similarity index 100%
rename from src/components/elements/Paper/__snapshots__/Paper.test.tsx.snap
rename to src/components/Paper/__snapshots__/Paper.test.tsx.snap
diff --git a/src/components/elements/Paper/index.ts b/src/components/Paper/index.ts
similarity index 100%
rename from src/components/elements/Paper/index.ts
rename to src/components/Paper/index.ts
diff --git a/src/components/elements/Popover/Popover.stories.tsx b/src/components/Popover/Popover.stories.tsx
similarity index 100%
rename from src/components/elements/Popover/Popover.stories.tsx
rename to src/components/Popover/Popover.stories.tsx
diff --git a/src/components/elements/Popover/Popover.test.tsx b/src/components/Popover/Popover.test.tsx
similarity index 100%
rename from src/components/elements/Popover/Popover.test.tsx
rename to src/components/Popover/Popover.test.tsx
diff --git a/src/components/elements/Popover/Popover.tsx b/src/components/Popover/Popover.tsx
similarity index 96%
rename from src/components/elements/Popover/Popover.tsx
rename to src/components/Popover/Popover.tsx
index b1710c4fe..4349f8320 100644
--- a/src/components/elements/Popover/Popover.tsx
+++ b/src/components/Popover/Popover.tsx
@@ -1,6 +1,6 @@
 import React, { CSSProperties } from 'react'
 
-import { Theme, useStyles } from '../../../styles'
+import { Theme, useStyles } from '../../styles'
 import { PopperFocus, PopperFocusProps } from '../Popper/PopperFocus'
 
 export interface PopoverProps {
diff --git a/src/components/elements/Popover/__snapshots__/Popover.test.tsx.snap b/src/components/Popover/__snapshots__/Popover.test.tsx.snap
similarity index 100%
rename from src/components/elements/Popover/__snapshots__/Popover.test.tsx.snap
rename to src/components/Popover/__snapshots__/Popover.test.tsx.snap
diff --git a/src/components/elements/Popover/index.ts b/src/components/Popover/index.ts
similarity index 100%
rename from src/components/elements/Popover/index.ts
rename to src/components/Popover/index.ts
diff --git a/src/components/elements/Popper/Popper.test.tsx b/src/components/Popper/Popper.test.tsx
similarity index 100%
rename from src/components/elements/Popper/Popper.test.tsx
rename to src/components/Popper/Popper.test.tsx
diff --git a/src/components/elements/Popper/Popper.tsx b/src/components/Popper/Popper.tsx
similarity index 97%
rename from src/components/elements/Popper/Popper.tsx
rename to src/components/Popper/Popper.tsx
index 51830d613..3bdcc18c5 100644
--- a/src/components/elements/Popper/Popper.tsx
+++ b/src/components/Popper/Popper.tsx
@@ -1,8 +1,8 @@
 import React from 'react'
 import { Manager, Reference } from 'react-popper'
 
-import { ExternalStyles, useStyles } from '../../../styles'
-import { Omit } from '../../../util'
+import { ExternalStyles, useStyles } from '../../styles'
+import { Omit } from '../../util'
 
 import { PopperContent, PopperContentProps } from './PopperContent'
 
diff --git a/src/components/elements/Popper/PopperContent.tsx b/src/components/Popper/PopperContent.tsx
similarity index 92%
rename from src/components/elements/Popper/PopperContent.tsx
rename to src/components/Popper/PopperContent.tsx
index 262714d18..edc6299f2 100644
--- a/src/components/elements/Popper/PopperContent.tsx
+++ b/src/components/Popper/PopperContent.tsx
@@ -1,8 +1,8 @@
 import React, { CSSProperties } from 'react'
 import { Popper, PopperProps } from 'react-popper'
 
-import { Theme, useStyles } from '../../../styles'
-import { Omit } from '../../../util/types'
+import { Theme, useStyles } from '../../styles'
+import { Omit } from '../../util/types'
 
 export interface PopperContentProps extends Omit<PopperProps, 'children'> {
   show: boolean
diff --git a/src/components/elements/Popper/PopperFocus.tsx b/src/components/Popper/PopperFocus.tsx
similarity index 97%
rename from src/components/elements/Popper/PopperFocus.tsx
rename to src/components/Popper/PopperFocus.tsx
index d3f729d94..64d23c7a7 100644
--- a/src/components/elements/Popper/PopperFocus.tsx
+++ b/src/components/Popper/PopperFocus.tsx
@@ -1,7 +1,7 @@
 import React, { useState } from 'react'
 import { Manager, PopperProps, Reference } from 'react-popper'
 
-import { useStyles } from '../../../styles'
+import { useStyles } from '../../styles'
 
 import { PopperContent, PopperContentProps } from './PopperContent'
 
diff --git a/src/components/elements/Popper/__snapshots__/Popper.test.tsx.snap b/src/components/Popper/__snapshots__/Popper.test.tsx.snap
similarity index 100%
rename from src/components/elements/Popper/__snapshots__/Popper.test.tsx.snap
rename to src/components/Popper/__snapshots__/Popper.test.tsx.snap
diff --git a/src/components/elements/Popper/index.ts b/src/components/Popper/index.ts
similarity index 100%
rename from src/components/elements/Popper/index.ts
rename to src/components/Popper/index.ts
diff --git a/src/components/elements/Portal/Portal.tsx b/src/components/Portal/Portal.tsx
similarity index 100%
rename from src/components/elements/Portal/Portal.tsx
rename to src/components/Portal/Portal.tsx
diff --git a/src/components/elements/Portal/index.ts b/src/components/Portal/index.ts
similarity index 100%
rename from src/components/elements/Portal/index.ts
rename to src/components/Portal/index.ts
diff --git a/src/components/elements/Progress/Progress.stories.tsx b/src/components/Progress/Progress.stories.tsx
similarity index 100%
rename from src/components/elements/Progress/Progress.stories.tsx
rename to src/components/Progress/Progress.stories.tsx
diff --git a/src/components/elements/Progress/Progress.test.tsx b/src/components/Progress/Progress.test.tsx
similarity index 100%
rename from src/components/elements/Progress/Progress.test.tsx
rename to src/components/Progress/Progress.test.tsx
diff --git a/src/components/elements/Progress/Progress.tsx b/src/components/Progress/Progress.tsx
similarity index 86%
rename from src/components/elements/Progress/Progress.tsx
rename to src/components/Progress/Progress.tsx
index 73e245ca3..b7abaa665 100644
--- a/src/components/elements/Progress/Progress.tsx
+++ b/src/components/Progress/Progress.tsx
@@ -1,8 +1,8 @@
 import React, { CSSProperties } from 'react'
 
-import { ExternalStyles, TextColor, useStyles } from '../../../styles'
-import { getTextColor, Theme } from '../../../styles/theme/createTheme'
-import { Omit } from '../../../util'
+import { ExternalStyles, TextColor, useStyles } from '../../styles'
+import { getTextColor, Theme } from '../../styles/theme/createTheme'
+import { Omit } from '../../util'
 
 export type ProgressType = TextColor
 
diff --git a/src/components/elements/Progress/__snapshots__/Progress.test.tsx.snap b/src/components/Progress/__snapshots__/Progress.test.tsx.snap
similarity index 100%
rename from src/components/elements/Progress/__snapshots__/Progress.test.tsx.snap
rename to src/components/Progress/__snapshots__/Progress.test.tsx.snap
diff --git a/src/components/elements/Progress/index.ts b/src/components/Progress/index.ts
similarity index 100%
rename from src/components/elements/Progress/index.ts
rename to src/components/Progress/index.ts
diff --git a/src/components/elements/RootRef/RootRef.test.tsx b/src/components/RootRef/RootRef.test.tsx
similarity index 100%
rename from src/components/elements/RootRef/RootRef.test.tsx
rename to src/components/RootRef/RootRef.test.tsx
diff --git a/src/components/elements/RootRef/RootRef.tsx b/src/components/RootRef/RootRef.tsx
similarity index 95%
rename from src/components/elements/RootRef/RootRef.tsx
rename to src/components/RootRef/RootRef.tsx
index b20a5a9dc..7d58c1411 100644
--- a/src/components/elements/RootRef/RootRef.tsx
+++ b/src/components/RootRef/RootRef.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { findDOMNode } from 'react-dom'
 
-import { setRef } from '../../../util/react'
+import { setRef } from '../../util/react'
 
 export interface RootRefProps<T extends Element = Element> {
   rootRef: React.Ref<T>
diff --git a/src/components/elements/RootRef/index.ts b/src/components/RootRef/index.ts
similarity index 100%
rename from src/components/elements/RootRef/index.ts
rename to src/components/RootRef/index.ts
diff --git a/src/components/elements/SelectInline/SelectInline.stories.tsx b/src/components/SelectInline/SelectInline.stories.tsx
similarity index 94%
rename from src/components/elements/SelectInline/SelectInline.stories.tsx
rename to src/components/SelectInline/SelectInline.stories.tsx
index 489f8a5ab..57ba450c7 100644
--- a/src/components/elements/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 '../form'
 
 import { SelectInline } from './SelectInline'
 
diff --git a/src/components/elements/SelectInline/SelectInline.tsx b/src/components/SelectInline/SelectInline.tsx
similarity index 91%
rename from src/components/elements/SelectInline/SelectInline.tsx
rename to src/components/SelectInline/SelectInline.tsx
index 7d987cef4..58cc8c5ba 100644
--- a/src/components/elements/SelectInline/SelectInline.tsx
+++ b/src/components/SelectInline/SelectInline.tsx
@@ -1,14 +1,14 @@
 import { Interpolation } from 'emotion'
 import * as React from 'react'
 
-import { useTheme } from '../../../styles'
-import { Omit } from '../../../util'
-import { composeRefs } from '../../../util/react'
-import { Select, SelectSingleProps } from '../../form/input/Select'
+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 { Text } from '../textual/Text/Text'
+import { Text } from '../Text'
 
 export interface SelectInlineProps<T> extends SelectSingleProps<T> {
   buttonProps?: ButtonProps
diff --git a/src/components/elements/SelectInline/__snapshots__/SelectInline.test.tsx.snap b/src/components/SelectInline/__snapshots__/SelectInline.test.tsx.snap
similarity index 100%
rename from src/components/elements/SelectInline/__snapshots__/SelectInline.test.tsx.snap
rename to src/components/SelectInline/__snapshots__/SelectInline.test.tsx.snap
diff --git a/src/components/elements/SelectInline/index.ts b/src/components/SelectInline/index.ts
similarity index 100%
rename from src/components/elements/SelectInline/index.ts
rename to src/components/SelectInline/index.ts
diff --git a/src/components/elements/Spinner/Spinner.stories.tsx b/src/components/Spinner/Spinner.stories.tsx
similarity index 100%
rename from src/components/elements/Spinner/Spinner.stories.tsx
rename to src/components/Spinner/Spinner.stories.tsx
diff --git a/src/components/elements/Spinner/Spinner.test.tsx b/src/components/Spinner/Spinner.test.tsx
similarity index 100%
rename from src/components/elements/Spinner/Spinner.test.tsx
rename to src/components/Spinner/Spinner.test.tsx
diff --git a/src/components/elements/Spinner/Spinner.tsx b/src/components/Spinner/Spinner.tsx
similarity index 93%
rename from src/components/elements/Spinner/Spinner.tsx
rename to src/components/Spinner/Spinner.tsx
index 4f5d473b8..0ca8d2ed1 100644
--- a/src/components/elements/Spinner/Spinner.tsx
+++ b/src/components/Spinner/Spinner.tsx
@@ -1,6 +1,6 @@
 import React, { CSSProperties } from 'react'
 
-import { ExternalStyles, Theme, useStyles } from '../../../styles'
+import { ExternalStyles, Theme, useStyles } from '../../styles'
 
 export interface SpinnerProps {
   size?: number
diff --git a/src/components/elements/Spinner/__snapshots__/Spinner.test.tsx.snap b/src/components/Spinner/__snapshots__/Spinner.test.tsx.snap
similarity index 100%
rename from src/components/elements/Spinner/__snapshots__/Spinner.test.tsx.snap
rename to src/components/Spinner/__snapshots__/Spinner.test.tsx.snap
diff --git a/src/components/elements/Spinner/index.ts b/src/components/Spinner/index.ts
similarity index 100%
rename from src/components/elements/Spinner/index.ts
rename to src/components/Spinner/index.ts
diff --git a/src/components/elements/StickyContainer/StickyContainer.stories.tsx b/src/components/StickyContainer/StickyContainer.stories.tsx
similarity index 100%
rename from src/components/elements/StickyContainer/StickyContainer.stories.tsx
rename to src/components/StickyContainer/StickyContainer.stories.tsx
diff --git a/src/components/elements/StickyContainer/StickyContainer.test.tsx b/src/components/StickyContainer/StickyContainer.test.tsx
similarity index 100%
rename from src/components/elements/StickyContainer/StickyContainer.test.tsx
rename to src/components/StickyContainer/StickyContainer.test.tsx
diff --git a/src/components/elements/StickyContainer/StickyContainer.tsx b/src/components/StickyContainer/StickyContainer.tsx
similarity index 83%
rename from src/components/elements/StickyContainer/StickyContainer.tsx
rename to src/components/StickyContainer/StickyContainer.tsx
index 20f2cb3a9..73c08bf04 100644
--- a/src/components/elements/StickyContainer/StickyContainer.tsx
+++ b/src/components/StickyContainer/StickyContainer.tsx
@@ -1,9 +1,9 @@
 import { PositionProperty } from 'csstype'
 import React, { CSSProperties } from 'react'
 
-import { useScrollPosition } from '../../../hooks/useScrollPosition'
-import { ExternalStyles, Theme, useStyles } from '../../../styles'
-import { Omit } from '../../../util'
+import { useScrollPosition } from '../../hooks/useScrollPosition'
+import { ExternalStyles, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util'
 
 export interface StickyContainerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {
   top?: number
diff --git a/src/components/elements/StickyContainer/__snapshots__/StickyContainer.test.tsx.snap b/src/components/StickyContainer/__snapshots__/StickyContainer.test.tsx.snap
similarity index 100%
rename from src/components/elements/StickyContainer/__snapshots__/StickyContainer.test.tsx.snap
rename to src/components/StickyContainer/__snapshots__/StickyContainer.test.tsx.snap
diff --git a/src/components/elements/StickyContainer/index.ts b/src/components/StickyContainer/index.ts
similarity index 100%
rename from src/components/elements/StickyContainer/index.ts
rename to src/components/StickyContainer/index.ts
diff --git a/src/components/elements/Table/DataTable/DataTable.stories.tsx b/src/components/Table/DataTable/DataTable.stories.tsx
similarity index 100%
rename from src/components/elements/Table/DataTable/DataTable.stories.tsx
rename to src/components/Table/DataTable/DataTable.stories.tsx
diff --git a/src/components/elements/Table/DataTable/DataTable.test.tsx b/src/components/Table/DataTable/DataTable.test.tsx
similarity index 100%
rename from src/components/elements/Table/DataTable/DataTable.test.tsx
rename to src/components/Table/DataTable/DataTable.test.tsx
diff --git a/src/components/elements/Table/DataTable/DataTable.tsx b/src/components/Table/DataTable/DataTable.tsx
similarity index 98%
rename from src/components/elements/Table/DataTable/DataTable.tsx
rename to src/components/Table/DataTable/DataTable.tsx
index 383874d8a..d359aed3c 100644
--- a/src/components/elements/Table/DataTable/DataTable.tsx
+++ b/src/components/Table/DataTable/DataTable.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 
-import { ExternalStyles } from '../../../../styles'
+import { ExternalStyles } from '../../../styles'
 import { SortDirection } from '../SortableLabel/SortableLabel'
 import { Table, TableHead, TableHeader, TableHeaderProps, TableProps, TableRow } from '../Table'
 
diff --git a/src/components/elements/Table/DataTable/TableFilledBody.test.tsx b/src/components/Table/DataTable/TableFilledBody.test.tsx
similarity index 100%
rename from src/components/elements/Table/DataTable/TableFilledBody.test.tsx
rename to src/components/Table/DataTable/TableFilledBody.test.tsx
diff --git a/src/components/elements/Table/DataTable/TableFilledBody.tsx b/src/components/Table/DataTable/TableFilledBody.tsx
similarity index 100%
rename from src/components/elements/Table/DataTable/TableFilledBody.tsx
rename to src/components/Table/DataTable/TableFilledBody.tsx
diff --git a/src/components/elements/Table/DataTable/TableLoadingRow.test.tsx b/src/components/Table/DataTable/TableLoadingRow.test.tsx
similarity index 100%
rename from src/components/elements/Table/DataTable/TableLoadingRow.test.tsx
rename to src/components/Table/DataTable/TableLoadingRow.test.tsx
diff --git a/src/components/elements/Table/DataTable/TableLoadingRow.tsx b/src/components/Table/DataTable/TableLoadingRow.tsx
similarity index 89%
rename from src/components/elements/Table/DataTable/TableLoadingRow.tsx
rename to src/components/Table/DataTable/TableLoadingRow.tsx
index 619d3434f..eb575450c 100644
--- a/src/components/elements/Table/DataTable/TableLoadingRow.tsx
+++ b/src/components/Table/DataTable/TableLoadingRow.tsx
@@ -1,7 +1,7 @@
 import React, { CSSProperties } from 'react'
 
-import { Theme, useStyles } from '../../../../styles'
-import { Spinner } from '../../../elements/Spinner/Spinner'
+import { Theme, useStyles } from '../../../styles'
+import { Spinner } from '../../Spinner'
 import { TableCell, TableRow } from '../Table'
 
 export interface TableLoadingRowProps {
diff --git a/src/components/elements/Table/DataTable/TablePlaceholderRow.test.tsx b/src/components/Table/DataTable/TablePlaceholderRow.test.tsx
similarity index 100%
rename from src/components/elements/Table/DataTable/TablePlaceholderRow.test.tsx
rename to src/components/Table/DataTable/TablePlaceholderRow.test.tsx
diff --git a/src/components/elements/Table/DataTable/TablePlaceholderRow.tsx b/src/components/Table/DataTable/TablePlaceholderRow.tsx
similarity index 93%
rename from src/components/elements/Table/DataTable/TablePlaceholderRow.tsx
rename to src/components/Table/DataTable/TablePlaceholderRow.tsx
index a1ae18007..e898afd13 100644
--- a/src/components/elements/Table/DataTable/TablePlaceholderRow.tsx
+++ b/src/components/Table/DataTable/TablePlaceholderRow.tsx
@@ -1,6 +1,6 @@
 import React, { CSSProperties } from 'react'
 
-import { Theme, useStyles } from '../../../../styles'
+import { Theme, useStyles } from '../../../styles'
 import { TableCell, TableRow } from '../Table'
 
 export interface TablePlaceholderRowProps {
diff --git a/src/components/elements/Table/DataTable/__snapshots__/DataTable.test.tsx.snap b/src/components/Table/DataTable/__snapshots__/DataTable.test.tsx.snap
similarity index 100%
rename from src/components/elements/Table/DataTable/__snapshots__/DataTable.test.tsx.snap
rename to src/components/Table/DataTable/__snapshots__/DataTable.test.tsx.snap
diff --git a/src/components/elements/Table/DataTable/__snapshots__/TableFilledBody.test.tsx.snap b/src/components/Table/DataTable/__snapshots__/TableFilledBody.test.tsx.snap
similarity index 100%
rename from src/components/elements/Table/DataTable/__snapshots__/TableFilledBody.test.tsx.snap
rename to src/components/Table/DataTable/__snapshots__/TableFilledBody.test.tsx.snap
diff --git a/src/components/elements/Table/DataTable/__snapshots__/TableLoadingRow.test.tsx.snap b/src/components/Table/DataTable/__snapshots__/TableLoadingRow.test.tsx.snap
similarity index 100%
rename from src/components/elements/Table/DataTable/__snapshots__/TableLoadingRow.test.tsx.snap
rename to src/components/Table/DataTable/__snapshots__/TableLoadingRow.test.tsx.snap
diff --git a/src/components/elements/Table/DataTable/__snapshots__/TablePlaceholderRow.test.tsx.snap b/src/components/Table/DataTable/__snapshots__/TablePlaceholderRow.test.tsx.snap
similarity index 100%
rename from src/components/elements/Table/DataTable/__snapshots__/TablePlaceholderRow.test.tsx.snap
rename to src/components/Table/DataTable/__snapshots__/TablePlaceholderRow.test.tsx.snap
diff --git a/src/components/elements/Table/PagedTable/PagedTable.stories.tsx b/src/components/Table/PagedTable/PagedTable.stories.tsx
similarity index 100%
rename from src/components/elements/Table/PagedTable/PagedTable.stories.tsx
rename to src/components/Table/PagedTable/PagedTable.stories.tsx
diff --git a/src/components/elements/Table/PagedTable/PagedTable.test.tsx b/src/components/Table/PagedTable/PagedTable.test.tsx
similarity index 100%
rename from src/components/elements/Table/PagedTable/PagedTable.test.tsx
rename to src/components/Table/PagedTable/PagedTable.test.tsx
diff --git a/src/components/elements/Table/PagedTable/PagedTable.tsx b/src/components/Table/PagedTable/PagedTable.tsx
similarity index 100%
rename from src/components/elements/Table/PagedTable/PagedTable.tsx
rename to src/components/Table/PagedTable/PagedTable.tsx
diff --git a/src/components/elements/Table/PagedTable/TableContainer.tsx b/src/components/Table/PagedTable/TableContainer.tsx
similarity index 100%
rename from src/components/elements/Table/PagedTable/TableContainer.tsx
rename to src/components/Table/PagedTable/TableContainer.tsx
diff --git a/src/components/elements/Table/PagedTable/__snapshots__/PagedTable.test.tsx.snap b/src/components/Table/PagedTable/__snapshots__/PagedTable.test.tsx.snap
similarity index 100%
rename from src/components/elements/Table/PagedTable/__snapshots__/PagedTable.test.tsx.snap
rename to src/components/Table/PagedTable/__snapshots__/PagedTable.test.tsx.snap
diff --git a/src/components/elements/Table/SortableLabel/SortableLabel.stories.tsx b/src/components/Table/SortableLabel/SortableLabel.stories.tsx
similarity index 100%
rename from src/components/elements/Table/SortableLabel/SortableLabel.stories.tsx
rename to src/components/Table/SortableLabel/SortableLabel.stories.tsx
diff --git a/src/components/elements/Table/SortableLabel/SortableLabel.test.tsx b/src/components/Table/SortableLabel/SortableLabel.test.tsx
similarity index 100%
rename from src/components/elements/Table/SortableLabel/SortableLabel.test.tsx
rename to src/components/Table/SortableLabel/SortableLabel.test.tsx
diff --git a/src/components/elements/Table/SortableLabel/SortableLabel.tsx b/src/components/Table/SortableLabel/SortableLabel.tsx
similarity index 97%
rename from src/components/elements/Table/SortableLabel/SortableLabel.tsx
rename to src/components/Table/SortableLabel/SortableLabel.tsx
index 9e6b1e0b3..14e246f6a 100644
--- a/src/components/elements/Table/SortableLabel/SortableLabel.tsx
+++ b/src/components/Table/SortableLabel/SortableLabel.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 
-import { Theme, useStyles } from '../../../../styles'
+import { Theme, useStyles } from '../../../styles'
 
 export type SortDirection = 'ASC' | 'DESC' | ''
 
diff --git a/src/components/elements/Table/SortableLabel/__snapshots__/SortableLabel.test.tsx.snap b/src/components/Table/SortableLabel/__snapshots__/SortableLabel.test.tsx.snap
similarity index 100%
rename from src/components/elements/Table/SortableLabel/__snapshots__/SortableLabel.test.tsx.snap
rename to src/components/Table/SortableLabel/__snapshots__/SortableLabel.test.tsx.snap
diff --git a/src/components/elements/Table/SortableLabel/index.ts b/src/components/Table/SortableLabel/index.ts
similarity index 100%
rename from src/components/elements/Table/SortableLabel/index.ts
rename to src/components/Table/SortableLabel/index.ts
diff --git a/src/components/elements/Table/Table/Table.stories.tsx b/src/components/Table/Table/Table.stories.tsx
similarity index 100%
rename from src/components/elements/Table/Table/Table.stories.tsx
rename to src/components/Table/Table/Table.stories.tsx
diff --git a/src/components/elements/Table/Table/Table.test.tsx b/src/components/Table/Table/Table.test.tsx
similarity index 100%
rename from src/components/elements/Table/Table/Table.test.tsx
rename to src/components/Table/Table/Table.test.tsx
diff --git a/src/components/elements/Table/Table/Table.tsx b/src/components/Table/Table/Table.tsx
similarity index 80%
rename from src/components/elements/Table/Table/Table.tsx
rename to src/components/Table/Table/Table.tsx
index 63312f203..acd233ed2 100644
--- a/src/components/elements/Table/Table/Table.tsx
+++ b/src/components/Table/Table/Table.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { ExternalStyles, useStyles } from '../../../../styles'
-import { Omit } from '../../../../util/types'
+import { ExternalStyles, useStyles } from '../../../styles'
+import { Omit } from '../../../util/types'
 
 import { createTableStyles } from './styles'
 
diff --git a/src/components/elements/Table/Table/TableBody.test.tsx b/src/components/Table/Table/TableBody.test.tsx
similarity index 100%
rename from src/components/elements/Table/Table/TableBody.test.tsx
rename to src/components/Table/Table/TableBody.test.tsx
diff --git a/src/components/elements/Table/Table/TableBody.tsx b/src/components/Table/Table/TableBody.tsx
similarity index 78%
rename from src/components/elements/Table/Table/TableBody.tsx
rename to src/components/Table/Table/TableBody.tsx
index 14c7778bc..e5fb200d5 100644
--- a/src/components/elements/Table/Table/TableBody.tsx
+++ b/src/components/Table/Table/TableBody.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { ExternalStyles, useStyles } from '../../../../styles'
-import { Omit } from '../../../../util/types'
+import { ExternalStyles, useStyles } from '../../../styles'
+import { Omit } from '../../../util/types'
 
 import { createTableStyles } from './styles'
 
diff --git a/src/components/elements/Table/Table/TableCell.test.tsx b/src/components/Table/Table/TableCell.test.tsx
similarity index 100%
rename from src/components/elements/Table/Table/TableCell.test.tsx
rename to src/components/Table/Table/TableCell.test.tsx
diff --git a/src/components/elements/Table/Table/TableCell.tsx b/src/components/Table/Table/TableCell.tsx
similarity index 78%
rename from src/components/elements/Table/Table/TableCell.tsx
rename to src/components/Table/Table/TableCell.tsx
index b0cab0670..a47eb572c 100644
--- a/src/components/elements/Table/Table/TableCell.tsx
+++ b/src/components/Table/Table/TableCell.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { ExternalStyles, useStyles } from '../../../../styles'
-import { Omit } from '../../../../util/types'
+import { ExternalStyles, useStyles } from '../../../styles'
+import { Omit } from '../../../util/types'
 
 import { createTableStyles } from './styles'
 
diff --git a/src/components/elements/Table/Table/TableHead.test.tsx b/src/components/Table/Table/TableHead.test.tsx
similarity index 100%
rename from src/components/elements/Table/Table/TableHead.test.tsx
rename to src/components/Table/Table/TableHead.test.tsx
diff --git a/src/components/elements/Table/Table/TableHead.tsx b/src/components/Table/Table/TableHead.tsx
similarity index 78%
rename from src/components/elements/Table/Table/TableHead.tsx
rename to src/components/Table/Table/TableHead.tsx
index be2b04bce..56ae01b1c 100644
--- a/src/components/elements/Table/Table/TableHead.tsx
+++ b/src/components/Table/Table/TableHead.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { ExternalStyles, useStyles } from '../../../../styles'
-import { Omit } from '../../../../util/types'
+import { ExternalStyles, useStyles } from '../../../styles'
+import { Omit } from '../../../util/types'
 
 import { createTableStyles } from './styles'
 
diff --git a/src/components/elements/Table/Table/TableHeader.test.tsx b/src/components/Table/Table/TableHeader.test.tsx
similarity index 100%
rename from src/components/elements/Table/Table/TableHeader.test.tsx
rename to src/components/Table/Table/TableHeader.test.tsx
diff --git a/src/components/elements/Table/Table/TableHeader.tsx b/src/components/Table/Table/TableHeader.tsx
similarity index 90%
rename from src/components/elements/Table/Table/TableHeader.tsx
rename to src/components/Table/Table/TableHeader.tsx
index dbe607508..c54d3fe62 100644
--- a/src/components/elements/Table/Table/TableHeader.tsx
+++ b/src/components/Table/Table/TableHeader.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { ExternalStyles, useStyles } from '../../../../styles'
-import { Omit } from '../../../../util/types'
+import { ExternalStyles, useStyles } from '../../../styles'
+import { Omit } from '../../../util/types'
 import { SortableLabel, SortDirection } from '../SortableLabel/SortableLabel'
 
 import { createTableStyles } from './styles'
diff --git a/src/components/elements/Table/Table/TableRow.test.tsx b/src/components/Table/Table/TableRow.test.tsx
similarity index 100%
rename from src/components/elements/Table/Table/TableRow.test.tsx
rename to src/components/Table/Table/TableRow.test.tsx
diff --git a/src/components/elements/Table/Table/TableRow.tsx b/src/components/Table/Table/TableRow.tsx
similarity index 79%
rename from src/components/elements/Table/Table/TableRow.tsx
rename to src/components/Table/Table/TableRow.tsx
index e10e509b0..fc9f44d77 100644
--- a/src/components/elements/Table/Table/TableRow.tsx
+++ b/src/components/Table/Table/TableRow.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
-import { ExternalStyles, useStyles } from '../../../../styles'
-import { Omit } from '../../../../util/types'
+import { ExternalStyles, useStyles } from '../../../styles'
+import { Omit } from '../../../util/types'
 
 import { createTableStyles } from './styles'
 
diff --git a/src/components/elements/Table/Table/__snapshots__/Table.test.tsx.snap b/src/components/Table/Table/__snapshots__/Table.test.tsx.snap
similarity index 100%
rename from src/components/elements/Table/Table/__snapshots__/Table.test.tsx.snap
rename to src/components/Table/Table/__snapshots__/Table.test.tsx.snap
diff --git a/src/components/elements/Table/Table/__snapshots__/TableBody.test.tsx.snap b/src/components/Table/Table/__snapshots__/TableBody.test.tsx.snap
similarity index 100%
rename from src/components/elements/Table/Table/__snapshots__/TableBody.test.tsx.snap
rename to src/components/Table/Table/__snapshots__/TableBody.test.tsx.snap
diff --git a/src/components/elements/Table/Table/__snapshots__/TableCell.test.tsx.snap b/src/components/Table/Table/__snapshots__/TableCell.test.tsx.snap
similarity index 100%
rename from src/components/elements/Table/Table/__snapshots__/TableCell.test.tsx.snap
rename to src/components/Table/Table/__snapshots__/TableCell.test.tsx.snap
diff --git a/src/components/elements/Table/Table/__snapshots__/TableHead.test.tsx.snap b/src/components/Table/Table/__snapshots__/TableHead.test.tsx.snap
similarity index 100%
rename from src/components/elements/Table/Table/__snapshots__/TableHead.test.tsx.snap
rename to src/components/Table/Table/__snapshots__/TableHead.test.tsx.snap
diff --git a/src/components/elements/Table/Table/__snapshots__/TableHeader.test.tsx.snap b/src/components/Table/Table/__snapshots__/TableHeader.test.tsx.snap
similarity index 100%
rename from src/components/elements/Table/Table/__snapshots__/TableHeader.test.tsx.snap
rename to src/components/Table/Table/__snapshots__/TableHeader.test.tsx.snap
diff --git a/src/components/elements/Table/Table/__snapshots__/TableRow.test.tsx.snap b/src/components/Table/Table/__snapshots__/TableRow.test.tsx.snap
similarity index 100%
rename from src/components/elements/Table/Table/__snapshots__/TableRow.test.tsx.snap
rename to src/components/Table/Table/__snapshots__/TableRow.test.tsx.snap
diff --git a/src/components/elements/Table/Table/index.ts b/src/components/Table/Table/index.ts
similarity index 100%
rename from src/components/elements/Table/Table/index.ts
rename to src/components/Table/Table/index.ts
diff --git a/src/components/elements/Table/Table/styles.ts b/src/components/Table/Table/styles.ts
similarity index 95%
rename from src/components/elements/Table/Table/styles.ts
rename to src/components/Table/Table/styles.ts
index d91e06126..a8692b7e2 100644
--- a/src/components/elements/Table/Table/styles.ts
+++ b/src/components/Table/Table/styles.ts
@@ -1,6 +1,6 @@
 import { CSSProperties } from 'react'
 
-import { Theme } from '../../../../styles'
+import { Theme } from '../../../styles'
 
 export const createTableStyles = (theme: Theme) => ({
   table: {
diff --git a/src/components/elements/Table/TableFooter/TableFooter.stories.tsx b/src/components/Table/TableFooter/TableFooter.stories.tsx
similarity index 100%
rename from src/components/elements/Table/TableFooter/TableFooter.stories.tsx
rename to src/components/Table/TableFooter/TableFooter.stories.tsx
diff --git a/src/components/elements/Table/TableFooter/TableFooter.test.tsx b/src/components/Table/TableFooter/TableFooter.test.tsx
similarity index 100%
rename from src/components/elements/Table/TableFooter/TableFooter.test.tsx
rename to src/components/Table/TableFooter/TableFooter.test.tsx
diff --git a/src/components/elements/Table/TableFooter/TableFooter.tsx b/src/components/Table/TableFooter/TableFooter.tsx
similarity index 94%
rename from src/components/elements/Table/TableFooter/TableFooter.tsx
rename to src/components/Table/TableFooter/TableFooter.tsx
index 9c18d4dfa..3c59e11f7 100644
--- a/src/components/elements/Table/TableFooter/TableFooter.tsx
+++ b/src/components/Table/TableFooter/TableFooter.tsx
@@ -1,10 +1,10 @@
 import React, { CSSProperties } from 'react'
 
-import { ExternalStyles, Theme, useStyles, WithStylesProps } from '../../../../styles'
+import { ExternalStyles, Theme, useStyles, WithStylesProps } from '../../../styles'
 import { HFlow } from '../../Flow'
+import { Number } from '../../Number'
 import { Paginator } from '../../Paginator/Paginator'
-import { Text } from '../../textual'
-import { Number } from '../../textual/Number/Number'
+import { Text } from '../../Text'
 
 import { TableSizeDropdown } from './TableSizeDropdown'
 
diff --git a/src/components/elements/Table/TableFooter/TableSizeDropdown.tsx b/src/components/Table/TableFooter/TableSizeDropdown.tsx
similarity index 95%
rename from src/components/elements/Table/TableFooter/TableSizeDropdown.tsx
rename to src/components/Table/TableFooter/TableSizeDropdown.tsx
index 008d7edf9..7ebe22186 100644
--- a/src/components/elements/Table/TableFooter/TableSizeDropdown.tsx
+++ b/src/components/Table/TableFooter/TableSizeDropdown.tsx
@@ -3,7 +3,7 @@ import React from 'react'
 
 import { DropdownButton, DropdownButtonItemProps } from '../../Dropdown'
 import { Icon } from '../../Icon'
-import { Text } from '../../textual'
+import { Text } from '../../Text'
 
 export interface TableSizeDropdownProps {
   size: number
diff --git a/src/components/elements/Table/TableFooter/__snapshots__/TableFooter.test.tsx.snap b/src/components/Table/TableFooter/__snapshots__/TableFooter.test.tsx.snap
similarity index 100%
rename from src/components/elements/Table/TableFooter/__snapshots__/TableFooter.test.tsx.snap
rename to src/components/Table/TableFooter/__snapshots__/TableFooter.test.tsx.snap
diff --git a/src/components/elements/Table/TableFooter/index.ts b/src/components/Table/TableFooter/index.ts
similarity index 100%
rename from src/components/elements/Table/TableFooter/index.ts
rename to src/components/Table/TableFooter/index.ts
diff --git a/src/components/elements/Table/index.ts b/src/components/Table/index.ts
similarity index 100%
rename from src/components/elements/Table/index.ts
rename to src/components/Table/index.ts
diff --git a/src/components/elements/Tabs/TabItem.test.tsx b/src/components/Tabs/TabItem.test.tsx
similarity index 100%
rename from src/components/elements/Tabs/TabItem.test.tsx
rename to src/components/Tabs/TabItem.test.tsx
diff --git a/src/components/elements/Tabs/TabItem.tsx b/src/components/Tabs/TabItem.tsx
similarity index 94%
rename from src/components/elements/Tabs/TabItem.tsx
rename to src/components/Tabs/TabItem.tsx
index ac6aa9210..10177c802 100644
--- a/src/components/elements/Tabs/TabItem.tsx
+++ b/src/components/Tabs/TabItem.tsx
@@ -1,7 +1,7 @@
 import React, { CSSProperties, HTMLAttributes } from 'react'
 
-import { ExternalStyles, Theme, useStyles } from '../../../styles'
-import { Omit } from '../../../util'
+import { ExternalStyles, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util'
 
 export interface TabItemProps extends Omit<HTMLAttributes<HTMLElement>, 'style'> {
   component?: React.ElementType
diff --git a/src/components/elements/Tabs/Tabs.stories.tsx b/src/components/Tabs/Tabs.stories.tsx
similarity index 100%
rename from src/components/elements/Tabs/Tabs.stories.tsx
rename to src/components/Tabs/Tabs.stories.tsx
diff --git a/src/components/elements/Tabs/Tabs.test.tsx b/src/components/Tabs/Tabs.test.tsx
similarity index 100%
rename from src/components/elements/Tabs/Tabs.test.tsx
rename to src/components/Tabs/Tabs.test.tsx
diff --git a/src/components/elements/Tabs/Tabs.tsx b/src/components/Tabs/Tabs.tsx
similarity index 79%
rename from src/components/elements/Tabs/Tabs.tsx
rename to src/components/Tabs/Tabs.tsx
index 0d5cb02b8..7bd4c5714 100644
--- a/src/components/elements/Tabs/Tabs.tsx
+++ b/src/components/Tabs/Tabs.tsx
@@ -1,8 +1,8 @@
 import React, { CSSProperties } from 'react'
 
-import { useRovingTabIndex } from '../../../hooks/useRovingTabIndex'
-import { ExternalStyles, Theme, useStyles } from '../../../styles'
-import { Omit } from '../../../util'
+import { useRovingTabIndex } from '../../hooks/useRovingTabIndex'
+import { ExternalStyles, Theme, useStyles } from '../../styles'
+import { Omit } from '../../util'
 
 export interface TabsProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'style'> {
   style?: ExternalStyles
diff --git a/src/components/elements/Tabs/__snapshots__/TabItem.test.tsx.snap b/src/components/Tabs/__snapshots__/TabItem.test.tsx.snap
similarity index 100%
rename from src/components/elements/Tabs/__snapshots__/TabItem.test.tsx.snap
rename to src/components/Tabs/__snapshots__/TabItem.test.tsx.snap
diff --git a/src/components/elements/Tabs/__snapshots__/Tabs.test.tsx.snap b/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap
similarity index 100%
rename from src/components/elements/Tabs/__snapshots__/Tabs.test.tsx.snap
rename to src/components/Tabs/__snapshots__/Tabs.test.tsx.snap
diff --git a/src/components/elements/Tabs/index.ts b/src/components/Tabs/index.ts
similarity index 100%
rename from src/components/elements/Tabs/index.ts
rename to src/components/Tabs/index.ts
diff --git a/src/components/elements/Tag/Tag.stories.tsx b/src/components/Tag/Tag.stories.tsx
similarity index 100%
rename from src/components/elements/Tag/Tag.stories.tsx
rename to src/components/Tag/Tag.stories.tsx
diff --git a/src/components/elements/Tag/Tag.test.tsx b/src/components/Tag/Tag.test.tsx
similarity index 100%
rename from src/components/elements/Tag/Tag.test.tsx
rename to src/components/Tag/Tag.test.tsx
diff --git a/src/components/elements/Tag/Tag.tsx b/src/components/Tag/Tag.tsx
similarity index 95%
rename from src/components/elements/Tag/Tag.tsx
rename to src/components/Tag/Tag.tsx
index a7bee6def..aa1b8d0ba 100644
--- a/src/components/elements/Tag/Tag.tsx
+++ b/src/components/Tag/Tag.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'
 import { Icon, Icons } from '../Icon'
 
 export type TagType = 'normal' | 'danger' | 'info' | 'success' | 'alert'
diff --git a/src/components/elements/Tag/__snapshots__/Tag.test.tsx.snap b/src/components/Tag/__snapshots__/Tag.test.tsx.snap
similarity index 100%
rename from src/components/elements/Tag/__snapshots__/Tag.test.tsx.snap
rename to src/components/Tag/__snapshots__/Tag.test.tsx.snap
diff --git a/src/components/elements/Tag/index.ts b/src/components/Tag/index.ts
similarity index 100%
rename from src/components/elements/Tag/index.ts
rename to src/components/Tag/index.ts
diff --git a/src/components/elements/textual/Text/Text.stories.tsx b/src/components/Text/Text.stories.tsx
similarity index 96%
rename from src/components/elements/textual/Text/Text.stories.tsx
rename to src/components/Text/Text.stories.tsx
index 875679adc..e675cb667 100644
--- a/src/components/elements/textual/Text/Text.stories.tsx
+++ b/src/components/Text/Text.stories.tsx
@@ -2,7 +2,7 @@ import { number, select, text } from '@storybook/addon-knobs'
 import { storiesOf } from '@storybook/react'
 import React from 'react'
 
-import { TextColor } from '../../../../styles'
+import { TextColor } from '../../styles'
 
 import { Text, TextProps } from './Text'
 
diff --git a/src/components/elements/textual/Text/Text.test.tsx b/src/components/Text/Text.test.tsx
similarity index 100%
rename from src/components/elements/textual/Text/Text.test.tsx
rename to src/components/Text/Text.test.tsx
diff --git a/src/components/elements/textual/Text/Text.tsx b/src/components/Text/Text.tsx
similarity index 86%
rename from src/components/elements/textual/Text/Text.tsx
rename to src/components/Text/Text.tsx
index f5c4e798d..d3c27365a 100644
--- a/src/components/elements/textual/Text/Text.tsx
+++ b/src/components/Text/Text.tsx
@@ -1,10 +1,10 @@
 import { FontStyleProperty, FontWeightProperty, TextDecorationProperty } from 'csstype'
 import React, { CSSProperties, HTMLAttributes } from 'react'
 
-import { ExternalStyles, TextColor, useStyles } from '../../../../styles'
-import { getTextColor, Theme } from '../../../../styles/theme/createTheme'
-import { TypographyVariant } from '../../../../styles/theme/createTypography'
-import { Omit } from '../../../../util'
+import { ExternalStyles, TextColor, useStyles } from '../../styles'
+import { getTextColor, Theme } from '../../styles/theme/createTheme'
+import { TypographyVariant } from '../../styles/theme/createTypography'
+import { Omit } from '../../util'
 
 export interface BaseTextProps {
   component?: React.ElementType
diff --git a/src/components/elements/textual/Text/__snapshots__/Text.test.tsx.snap b/src/components/Text/__snapshots__/Text.test.tsx.snap
similarity index 100%
rename from src/components/elements/textual/Text/__snapshots__/Text.test.tsx.snap
rename to src/components/Text/__snapshots__/Text.test.tsx.snap
diff --git a/src/components/Text/index.ts b/src/components/Text/index.ts
new file mode 100644
index 000000000..75ab6053d
--- /dev/null
+++ b/src/components/Text/index.ts
@@ -0,0 +1,1 @@
+export { Text, TextProps, BaseTextProps } from './Text'
diff --git a/src/components/elements/Tooltip/Tooltip.tsx b/src/components/Tooltip/Tooltip.tsx
similarity index 95%
rename from src/components/elements/Tooltip/Tooltip.tsx
rename to src/components/Tooltip/Tooltip.tsx
index edfdf5327..ae93404fa 100644
--- a/src/components/elements/Tooltip/Tooltip.tsx
+++ b/src/components/Tooltip/Tooltip.tsx
@@ -1,9 +1,9 @@
 import React from 'react'
 import { Manager, Popper, PopperProps, Reference } from 'react-popper'
 
-import { ExternalStyles, useTheme } from '../../../styles'
-import { Omit } from '../../../util'
-import { randomStr } from '../../../util/string'
+import { ExternalStyles, useTheme } from '../../styles'
+import { Omit } from '../../util'
+import { randomStr } from '../../util/string'
 import { Portal } from '../Portal'
 import { RootRef } from '../RootRef'
 import { FadeTransition } from '../Transition/FadeTransition'
diff --git a/src/components/elements/Tooltip/TooltipPopper.test.tsx b/src/components/Tooltip/TooltipPopper.test.tsx
similarity index 100%
rename from src/components/elements/Tooltip/TooltipPopper.test.tsx
rename to src/components/Tooltip/TooltipPopper.test.tsx
diff --git a/src/components/elements/Tooltip/TooltipPopper.tsx b/src/components/Tooltip/TooltipPopper.tsx
similarity index 93%
rename from src/components/elements/Tooltip/TooltipPopper.tsx
rename to src/components/Tooltip/TooltipPopper.tsx
index 28cf03838..c7f3050e9 100644
--- a/src/components/elements/Tooltip/TooltipPopper.tsx
+++ b/src/components/Tooltip/TooltipPopper.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 
-import { ExternalStyles, Theme, useStyles } from '../../../styles'
+import { ExternalStyles, Theme, useStyles } from '../../styles'
 
 export interface TooltipPopperProps {
   text: string
diff --git a/src/components/elements/Tooltip/__snapshots__/Tooltip.test.tsx.snap b/src/components/Tooltip/__snapshots__/Tooltip.test.tsx.snap
similarity index 100%
rename from src/components/elements/Tooltip/__snapshots__/Tooltip.test.tsx.snap
rename to src/components/Tooltip/__snapshots__/Tooltip.test.tsx.snap
diff --git a/src/components/elements/Tooltip/__snapshots__/TooltipPopper.test.tsx.snap b/src/components/Tooltip/__snapshots__/TooltipPopper.test.tsx.snap
similarity index 100%
rename from src/components/elements/Tooltip/__snapshots__/TooltipPopper.test.tsx.snap
rename to src/components/Tooltip/__snapshots__/TooltipPopper.test.tsx.snap
diff --git a/src/components/elements/Tooltip/index.ts b/src/components/Tooltip/index.ts
similarity index 100%
rename from src/components/elements/Tooltip/index.ts
rename to src/components/Tooltip/index.ts
diff --git a/src/components/elements/Transition/FadeTransition.tsx b/src/components/Transition/FadeTransition.tsx
similarity index 94%
rename from src/components/elements/Transition/FadeTransition.tsx
rename to src/components/Transition/FadeTransition.tsx
index 0671e165f..afa2cf0d1 100644
--- a/src/components/elements/Transition/FadeTransition.tsx
+++ b/src/components/Transition/FadeTransition.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import Transition, { TransitionProps, TransitionStatus } from 'react-transition-group/Transition'
 
-import { ClassNames, useStyles } from '../../../styles'
+import { ClassNames, useStyles } from '../../styles'
 
 export interface FadeTransitionProps extends Partial<TransitionProps> {
   children?(renderProps: FadeTransitionRenderProps): React.ReactNode
diff --git a/src/components/elements/Transition/useFadeTransition.ts b/src/components/Transition/useFadeTransition.ts
similarity index 91%
rename from src/components/elements/Transition/useFadeTransition.ts
rename to src/components/Transition/useFadeTransition.ts
index 32ff61f16..cd4c14fa3 100644
--- a/src/components/elements/Transition/useFadeTransition.ts
+++ b/src/components/Transition/useFadeTransition.ts
@@ -1,4 +1,4 @@
-import { useStyles } from '../../../styles'
+import { useStyles } from '../../styles'
 
 import { useTransition } from './useTransition'
 
diff --git a/src/components/elements/Transition/useTransition.ts b/src/components/Transition/useTransition.ts
similarity index 100%
rename from src/components/elements/Transition/useTransition.ts
rename to src/components/Transition/useTransition.ts
diff --git a/src/components/elements/Button/Button/skins/default.ts b/src/components/elements/Button/Button/skins/default.ts
deleted file mode 100644
index 5d180a494..000000000
--- a/src/components/elements/Button/Button/skins/default.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import { focusBoxShadow, shade, Theme } from '../../../../../styles'
-import { Skin } from '../ButtonSkins'
-
-export const createStyles = (theme: Theme): Skin => ({
-    button: {
-        backgroundColor: theme.pallete.surface.main,
-        border: '1px solid ' + theme.pallete.gray.c60,
-        borderRadius: theme.radius.button,
-        color: theme.pallete.text.main,
-        ':not(:disabled):active': {
-            boxShadow: 'inset 0 2px 8px 0 rgba(0, 0, 0, 0.1)',
-        },
-        ':focus': {
-            outline: 'none',
-            boxShadow: focusBoxShadow(theme),
-        },
-        ':not(:disabled):hover': {
-            backgroundColor: shade(-0.08, theme.pallete.surface.main),
-        },
-    },
-    primary: {
-        backgroundColor: theme.pallete.primary.main,
-        color: theme.pallete.surface.main,
-        border: `1px solid ${theme.pallete.primary.main}`,
-        ':not(:disabled):hover': {
-            backgroundColor: shade(-0.08, theme.pallete.primary.main),
-        },
-    },
-    danger: {
-        backgroundColor: theme.pallete.status.danger.main,
-        color: theme.pallete.status.danger.onColor,
-        border: `1px solid ${theme.pallete.status.danger.main}`,
-        ':not(:disabled):hover': {
-            backgroundColor: shade(-0.08, theme.pallete.status.danger.main),
-        },
-        ':focus': {
-            boxShadow: focusBoxShadow(theme, 'danger'),
-        },
-    },
-})
diff --git a/src/components/elements/Button/Button/skins/ghost.ts b/src/components/elements/Button/Button/skins/ghost.ts
deleted file mode 100644
index 8d1d7c3a3..000000000
--- a/src/components/elements/Button/Button/skins/ghost.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import { focusBoxShadow, hexToRGB, Theme } from '../../../../../styles'
-import { Skin } from '../ButtonSkins'
-
-export const createStyles = (theme: Theme): Skin => ({
-    button: {
-        backgroundColor: 'transparent',
-        border: '1px solid transparent',
-        borderRadius: theme.radius.button,
-        color: theme.pallete.text.main,
-        ':not(:disabled):active': {
-            boxShadow: 'inset 0 2px 8px 0 rgba(0, 0, 0, 0.1)',
-        },
-        ':focus': {
-            outline: 'none',
-            boxShadow: focusBoxShadow(theme, 'primary', 'single'),
-        },
-        ':not(:disabled):hover': {
-            backgroundColor: hexToRGB(theme.pallete.gray.c20, 0.1),
-        },
-    },
-    primary: {
-        color: theme.pallete.primary.main,
-    },
-    danger: {
-        color: theme.pallete.status.danger.main,
-        ':focus': {
-            boxShadow: focusBoxShadow(theme, 'danger'),
-        },
-    },
-})
diff --git a/src/components/elements/Button/Button/skins/outline.ts b/src/components/elements/Button/Button/skins/outline.ts
deleted file mode 100644
index 7792bf157..000000000
--- a/src/components/elements/Button/Button/skins/outline.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import { focusBoxShadow, hexToRGB, Theme } from '../../../../../styles'
-import { Skin } from '../ButtonSkins'
-
-export const createStyles = (theme: Theme): Skin => ({
-    button: {
-        backgroundColor: 'transparent',
-        border: '1px solid ' + theme.pallete.gray.c60,
-        borderRadius: theme.radius.button,
-        color: theme.pallete.text.main,
-        ':not(:disabled):active': {
-            boxShadow: 'inset 0 2px 8px 0 rgba(0, 0, 0, 0.1)',
-        },
-        ':focus': {
-            outline: 'none',
-            boxShadow: focusBoxShadow(theme),
-        },
-        ':not(:disabled):hover': {
-            backgroundColor: hexToRGB(theme.pallete.gray.c50, 0.16),
-        },
-    },
-    primary: {
-        border: `1px solid ${theme.pallete.primary.main}`,
-        color: theme.pallete.primary.main,
-        ':not(:disabled):hover': {
-            backgroundColor: hexToRGB(theme.pallete.primary.main, 0.16),
-        },
-    },
-    danger: {
-        border: `1px solid ${theme.pallete.status.danger.main}`,
-        color: theme.pallete.status.danger.main,
-        ':not(:disabled):hover': {
-            backgroundColor: hexToRGB(theme.pallete.status.danger.main, 0.1),
-        },
-        ':focus': {
-            boxShadow: focusBoxShadow(theme, 'danger'),
-        },
-    },
-})
diff --git a/src/components/elements/Modal/auto/ModalStore.ts b/src/components/elements/Modal/auto/ModalStore.ts
deleted file mode 100644
index 356e942eb..000000000
--- a/src/components/elements/Modal/auto/ModalStore.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-import { Observable } from '../../../../util/Observable'
-
-export interface ModalStoreItem {
-    key: string
-    component: React.ReactNode
-}
-
-export interface ModalStoreState {
-    items: ModalStoreItem[]
-}
-
-export interface ModalStoreAppendProps {
-    dispose(): void
-}
-
-export type ModalStoreRenderFn = (props: ModalStoreAppendProps) => React.ReactNode
-
-export class ModalStore extends Observable<ModalStoreState> {
-    private value: ModalStoreState = {
-        items: [],
-    }
-
-    notify(value: ModalStoreState) {
-        if (process.env.NODE_ENV === 'development' && this.listeners.length === 0) {
-            // tslint:disable-next-line no-console
-            console.warn(`No listeners to the modal store change. ` +
-                `Maybe you need to include a <ModalMountTarget /> in your application.`)
-        }
-
-        super.notify(value)
-    }
-
-    append(render: ModalStoreRenderFn) {
-        const key = Math.random().toString(36).substring(2)
-
-        const component = render({
-            dispose: this.dispose(key),
-        })
-
-        this.value = {
-            ...this.value,
-            items: [...this.value.items, { key, component }],
-        }
-
-        this.notify(this.value)
-
-        return key
-    }
-
-    private dispose(key: ModalStoreItem['key']) {
-        return () => {
-            this.value = {
-                ...this.value,
-                items: this.value.items.filter(item => item.key !== key),
-            }
-            this.notify(this.value)
-        }
-    }
-}
-
-export default new ModalStore()
diff --git a/src/components/elements/index.ts b/src/components/elements/index.ts
deleted file mode 100644
index 1a025207b..000000000
--- a/src/components/elements/index.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-export * from './Alert'
-export * from './AriaControlNav'
-export * from './Breadcrumb'
-export * from './Button'
-export * from './ButtonGroup'
-export * from './Calendar'
-export * from './Dropdown'
-export * from './FileUploader'
-export * from './Flow'
-export * from './FormControl'
-export * from './Grid'
-export * from './Icon'
-export * from './InfoLabel'
-export * from './Link'
-export * from './Modal'
-export * from './MonthPicker'
-export * from './Paginator'
-export * from './Paper'
-export * from './Popover'
-export * from './Popper'
-export * from './Portal'
-export * from './Progress'
-export * from './RootRef'
-export * from './SelectInline'
-export * from './Spinner'
-export * from './StickyContainer'
-export * from './Table'
-export * from './Tabs'
-export * from './Tag'
-export * from './textual'
-export * from './Tooltip'
diff --git a/src/components/elements/textual/index.ts b/src/components/elements/textual/index.ts
deleted file mode 100644
index a9cdcf012..000000000
--- a/src/components/elements/textual/index.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-export * from './Currency/Currency'
-export * from './Heading'
-export * from './HeadingSection'
-export * from './Highlight/Highlight'
-export * from './Number/Number'
-export * from './Text/Text'
-
-export * from './maskedLabels/maskedLabels'
diff --git a/src/components/elements/textual/maskedLabels/maskedLabels.stories.tsx b/src/components/elements/textual/maskedLabels/maskedLabels.stories.tsx
deleted file mode 100644
index 264581f76..000000000
--- a/src/components/elements/textual/maskedLabels/maskedLabels.stories.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import { text } from '@storybook/addon-knobs'
-import { storiesOf } from '@storybook/react'
-import React from 'react'
-
-import { Cep, Cpf, Telefone } from './maskedLabels'
-
-storiesOf('Components|Textual', module)
-  .add('Telefone', () => <Telefone value={text('value', '47997773734')} />)
-  .add('Cep', () => <Cep value={text('value', '88040420')} />)
-  .add('Cpf', () => <Cpf value={text('value', '18247075620')} />)
diff --git a/src/components/elements/textual/maskedLabels/maskedLabels.tsx b/src/components/elements/textual/maskedLabels/maskedLabels.tsx
deleted file mode 100644
index c4a5462d4..000000000
--- a/src/components/elements/textual/maskedLabels/maskedLabels.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import React from 'react'
-import { conformToMask } from 'text-mask-core'
-
-import { masks } from '../../../../util/masks'
-import { MaskType } from '../../../form/input/MaskedInput/MaskedInput'
-
-export interface GenericMaskedLabelProps {
-  value: string
-}
-
-function createMaskedLabel(displayName: string, mask: MaskType) {
-  return class extends React.PureComponent<GenericMaskedLabelProps> {
-    static displayName = displayName
-
-    render() {
-      const { value } = this.props
-
-      if (!value || value.trim() === '') {
-        return null
-      }
-
-      const maskedResult = conformToMask(value, mask, { guide: false })
-      return maskedResult.conformedValue
-    }
-  }
-}
-
-export const Telefone = createMaskedLabel('Telefone', masks.telefone)
-export const Cpf = createMaskedLabel('Cpf', masks.cpf)
-export const Cep = createMaskedLabel('Cep', masks.cep)
diff --git a/src/components/form/field/MaskedField/maskedFields/CepField.tsx b/src/components/form/field/MaskedField/maskedFields/CepField.tsx
index 8fe36bfdf..56d8e0aa0 100644
--- a/src/components/form/field/MaskedField/maskedFields/CepField.tsx
+++ b/src/components/form/field/MaskedField/maskedFields/CepField.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
 import { masks, onlyNumbers } from '../../../../../util/masks'
-import { MaskedField, MaskedFieldProps } from '../MaskedField'
+import { MaskedField, MaskedFieldProps } from '../../MaskedField'
 
 export interface CepFieldProps extends MaskedFieldProps {}
 
diff --git a/src/components/form/field/MaskedField/maskedFields/CnsField.tsx b/src/components/form/field/MaskedField/maskedFields/CnsField.tsx
index 5048a6c61..b69ee919e 100644
--- a/src/components/form/field/MaskedField/maskedFields/CnsField.tsx
+++ b/src/components/form/field/MaskedField/maskedFields/CnsField.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
 import { masks, onlyNumbers } from '../../../../../util/masks'
-import { MaskedField, MaskedFieldProps } from '../MaskedField'
+import { MaskedField, MaskedFieldProps } from '../../MaskedField'
 
 export interface CnsFieldProps extends MaskedFieldProps {}
 
diff --git a/src/components/form/field/MaskedField/maskedFields/CpfField.tsx b/src/components/form/field/MaskedField/maskedFields/CpfField.tsx
index bf3739bb3..8966e83ee 100644
--- a/src/components/form/field/MaskedField/maskedFields/CpfField.tsx
+++ b/src/components/form/field/MaskedField/maskedFields/CpfField.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
 import { masks, onlyNumbers } from '../../../../../util/masks'
-import { MaskedField, MaskedFieldProps } from '../MaskedField'
+import { MaskedField, MaskedFieldProps } from '../../MaskedField'
 
 export interface CpfFieldProps extends MaskedFieldProps {}
 
diff --git a/src/components/form/field/MaskedField/maskedFields/TelefoneField.tsx b/src/components/form/field/MaskedField/maskedFields/TelefoneField.tsx
index 059d4de47..439c41663 100644
--- a/src/components/form/field/MaskedField/maskedFields/TelefoneField.tsx
+++ b/src/components/form/field/MaskedField/maskedFields/TelefoneField.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
 import { masks, onlyNumbers } from '../../../../../util/masks'
-import { MaskedField, MaskedFieldProps } from '../MaskedField'
+import { MaskedField, MaskedFieldProps } from '../../MaskedField'
 
 export interface TelefoneFieldProps extends MaskedFieldProps {}
 
diff --git a/src/components/form/field/MonthField/MonthField.stories.tsx b/src/components/form/field/MonthField/MonthField.stories.tsx
index 8899aca05..1f6fcfe81 100644
--- a/src/components/form/field/MonthField/MonthField.stories.tsx
+++ b/src/components/form/field/MonthField/MonthField.stories.tsx
@@ -3,7 +3,7 @@ import { storiesOf } from '@storybook/react'
 import React from 'react'
 
 import { withForm } from '../../../../stories-addons'
-import { MonthPickerInput } from '../../../elements'
+import { MonthPickerInput } from '../../../MonthPicker'
 
 import { MonthField } from './MonthField'
 
diff --git a/src/components/form/field/MonthField/MonthField.tsx b/src/components/form/field/MonthField/MonthField.tsx
index 3d160b300..b2c3012a5 100644
--- a/src/components/form/field/MonthField/MonthField.tsx
+++ b/src/components/form/field/MonthField/MonthField.tsx
@@ -1,4 +1,4 @@
-import { MonthPickerInput, MonthPickerInputProps } from '../../../elements/MonthPicker'
+import { MonthPickerInput, MonthPickerInputProps } from '../../../MonthPicker'
 import { BaseFieldProps, withField } from '../../finalForm/Field'
 
 export type MonthFieldProps = BaseFieldProps<MonthPickerInputProps>
diff --git a/src/components/form/field/RadioField/RadioField.stories.tsx b/src/components/form/field/RadioField/RadioField.stories.tsx
index 91f9dec47..b843a25cc 100644
--- a/src/components/form/field/RadioField/RadioField.stories.tsx
+++ b/src/components/form/field/RadioField/RadioField.stories.tsx
@@ -4,7 +4,7 @@ import { storiesOf } from '@storybook/react'
 import React from 'react'
 
 import { withForm } from '../../../../stories-addons/withForm'
-import { Flow } from '../../../elements'
+import { Flow } from '../../../Flow'
 
 import { RadioField } from './RadioField'
 
diff --git a/src/components/form/finalForm/ErrorField.tsx b/src/components/form/finalForm/ErrorField.tsx
index 4a3e7fb95..c8bb7cb78 100644
--- a/src/components/form/finalForm/ErrorField.tsx
+++ b/src/components/form/finalForm/ErrorField.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { Field, FieldRenderProps } from 'react-final-form'
 
-import { FormError } from '../../elements/FormControl'
+import { FormError } from '../../FormControl'
 
 export interface ErrorFieldProps {
   name: string
diff --git a/src/components/form/finalForm/Field/Field.tsx b/src/components/form/finalForm/Field/Field.tsx
index ce916d9e3..e68cbc444 100644
--- a/src/components/form/finalForm/Field/Field.tsx
+++ b/src/components/form/finalForm/Field/Field.tsx
@@ -8,7 +8,7 @@ import {
 
 import { Meta } from '../../../../metaPath/metaPath'
 import { Omit } from '../../../../util'
-import { FormControl, FormControlProps } from '../../../elements/FormControl'
+import { FormControl, FormControlProps } from '../../../FormControl'
 
 import { getFieldError } from './util'
 
diff --git a/src/components/form/finalForm/Form/Form.stories.tsx b/src/components/form/finalForm/Form/Form.stories.tsx
index b4c100f34..d6870a797 100644
--- a/src/components/form/finalForm/Form/Form.stories.tsx
+++ b/src/components/form/finalForm/Form/Form.stories.tsx
@@ -3,7 +3,7 @@ import { storiesOf } from '@storybook/react'
 import React from 'react'
 import { FormRenderProps } from 'react-final-form'
 
-import { Flow, VFlow } from '../../../elements'
+import { Flow, VFlow } from '../../../Flow'
 import { CheckboxField } from '../../field/CheckboxField/CheckboxField'
 import { CpfField } from '../../field/MaskedField/maskedFields'
 import { RadioField } from '../../field/RadioField/RadioField'
diff --git a/src/components/form/finalForm/SubmitButton/SubmitButton.tsx b/src/components/form/finalForm/SubmitButton/SubmitButton.tsx
index d77be0a11..681dc2d53 100644
--- a/src/components/form/finalForm/SubmitButton/SubmitButton.tsx
+++ b/src/components/form/finalForm/SubmitButton/SubmitButton.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { FormSpy } from 'react-final-form'
 
-import { Button, ButtonProps } from '../../../elements/Button'
+import { Button, ButtonProps } from '../../../Button'
 
 export interface SubmitButtonProps extends ButtonProps {
   handleSubmit: (event?: React.SyntheticEvent<HTMLFormElement>) => void
diff --git a/src/components/form/input/Checkbox/Checkbox.tsx b/src/components/form/input/Checkbox/Checkbox.tsx
index a51e934e7..f08bf3531 100644
--- a/src/components/form/input/Checkbox/Checkbox.tsx
+++ b/src/components/form/input/Checkbox/Checkbox.tsx
@@ -2,7 +2,7 @@ import React, { CSSProperties, useEffect, useRef } from 'react'
 
 import { ClassNames, ExternalStyles, focusBoxShadow, Theme, useStyles } from '../../../../styles'
 import { Omit } from '../../../../util'
-import { Input, InputProps } from '../Input/Input'
+import { Input, InputProps } from '../Input'
 
 export interface CheckboxProps extends Omit<InputProps, 'style'> {
   label?: React.ReactNode
diff --git a/src/components/form/input/DateInput/CalendarPopup.tsx b/src/components/form/input/DateInput/CalendarPopup.tsx
index 2255e6d98..1d23dac99 100644
--- a/src/components/form/input/DateInput/CalendarPopup.tsx
+++ b/src/components/form/input/DateInput/CalendarPopup.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 
 import { Theme, useStyles } from '../../../../styles'
-import { Calendar, CalendarProps } from '../../../elements'
+import { Calendar, CalendarProps } from '../../../Calendar'
 
 export interface CalendarPopupProps extends CalendarProps {}
 
diff --git a/src/components/form/input/DateInput/DatePickerInput.tsx b/src/components/form/input/DateInput/DatePickerInput.tsx
index f2afb81ac..fe43994cf 100644
--- a/src/components/form/input/DateInput/DatePickerInput.tsx
+++ b/src/components/form/input/DateInput/DatePickerInput.tsx
@@ -1,9 +1,9 @@
 import React, { useRef } from 'react'
 
-import { CalendarProps } from '../../../elements/Calendar'
-import { isSameDay } from '../../../elements/Calendar/util'
-import { FocusManagerContainer } from '../../../elements/FocusManagerContainer'
-import { Popper, PopperController } from '../../../elements/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/MaskedInput/MaskedInput.tsx b/src/components/form/input/MaskedInput/MaskedInput.tsx
index 114792ad4..e2e651eaf 100644
--- a/src/components/form/input/MaskedInput/MaskedInput.tsx
+++ b/src/components/form/input/MaskedInput/MaskedInput.tsx
@@ -3,7 +3,7 @@ import ReactTextMask, { MaskedInputProps as ReactMaskedInputProps } from 'react-
 
 import { composeRefs } from '../../../../util/react'
 import { Omit } from '../../../../util/types'
-import { TextInput, TextInputProps } from '../TextInput/TextInput'
+import { TextInput, TextInputProps } from '../TextInput'
 
 export type MaskType = ReactMaskedInputProps['mask']
 
diff --git a/src/components/form/input/Radio/Radio.tsx b/src/components/form/input/Radio/Radio.tsx
index 65486f503..a57057480 100644
--- a/src/components/form/input/Radio/Radio.tsx
+++ b/src/components/form/input/Radio/Radio.tsx
@@ -1,7 +1,7 @@
 import React, { CSSProperties } from 'react'
 
 import { ClassNames, focusBoxShadow, Theme, useStyles } from '../../../../styles'
-import { Input, InputProps } from '../Input/Input'
+import { Input, InputProps } from '../Input'
 
 export interface RadioProps extends InputProps {
   label: React.ReactNode
diff --git a/src/components/form/input/Select/SelectMenu/SelectMenuItem.tsx b/src/components/form/input/Select/SelectMenu/SelectMenuItem.tsx
index 995479926..6e1668d45 100644
--- a/src/components/form/input/Select/SelectMenu/SelectMenuItem.tsx
+++ b/src/components/form/input/Select/SelectMenu/SelectMenuItem.tsx
@@ -2,7 +2,7 @@ import React from 'react'
 
 import { ExternalStyles, Theme, useStyles, useTheme } from '../../../../../styles'
 import { Omit } from '../../../../../util'
-import { Spinner } from '../../../../elements'
+import { Spinner } from '../../../../Spinner'
 
 export interface SelectMenuItemProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'style'> {
   style?: ExternalStyles
diff --git a/src/components/form/input/Select/SelectMulti/SelectMulti.tsx b/src/components/form/input/Select/SelectMulti/SelectMulti.tsx
index 20a4ecbc2..29a3c566a 100644
--- a/src/components/form/input/Select/SelectMulti/SelectMulti.tsx
+++ b/src/components/form/input/Select/SelectMulti/SelectMulti.tsx
@@ -1,10 +1,10 @@
 import React from 'react'
 
 import { Omit } from '../../../../../util'
-import { HFlow } from '../../../../elements/Flow'
+import { HFlow } from '../../../../Flow'
 import { Checkbox } from '../../Checkbox/Checkbox'
+import { DefaultItemType } from '../SelectSingle'
 import { SelectDownshiftMenu, SelectDownshiftMenuProps } from '../SelectSingle/SelectDownshiftMenu'
-import { DefaultItemType } from '../SelectSingle/SelectSingle'
 
 import { MultiDownshift, MultiDownshiftProps, MultiSelectRenderProps } from './MultiDownshift'
 import { SelectMultiInput, SelectMultiInputProps } from './SelectMultiInput'
diff --git a/src/components/form/input/Select/SelectMulti/SelectMultiItem.tsx b/src/components/form/input/Select/SelectMulti/SelectMultiItem.tsx
index d8c595953..5af4dee09 100644
--- a/src/components/form/input/Select/SelectMulti/SelectMultiItem.tsx
+++ b/src/components/form/input/Select/SelectMulti/SelectMultiItem.tsx
@@ -2,7 +2,7 @@ import React, { CSSProperties } from 'react'
 
 import { useLocale } from '../../../../../locale'
 import { ExternalStyles, Theme, useStyles } from '../../../../../styles'
-import Times from '../../../../elements/Icon/generated/TimesDefault'
+import Times from '../../../../Icon/generated/TimesDefault'
 
 export interface SelectMultiItemProps {
   style?: ExternalStyles
diff --git a/src/components/form/input/Switch/Switch.tsx b/src/components/form/input/Switch/Switch.tsx
index d35582c5f..ef9c35cfb 100644
--- a/src/components/form/input/Switch/Switch.tsx
+++ b/src/components/form/input/Switch/Switch.tsx
@@ -2,7 +2,7 @@ import React, { CSSProperties } from 'react'
 
 import { ClassNames, focusBoxShadow, Theme, useStyles } from '../../../../styles'
 import { Omit } from '../../../../util'
-import { Input, InputProps } from '../Input/Input'
+import { Input, InputProps } from '../Input'
 
 export interface SwitchProps extends Omit<React.HTMLAttributes<HTMLLabelElement>, 'onChange'> {
   label?: string
diff --git a/src/components/form/input/TextInput/InputWrapper.tsx b/src/components/form/input/TextInput/InputWrapper.tsx
index f393526fc..054c06c00 100644
--- a/src/components/form/input/TextInput/InputWrapper.tsx
+++ b/src/components/form/input/TextInput/InputWrapper.tsx
@@ -1,9 +1,9 @@
 import React, { CSSProperties } from 'react'
 
 import { Theme, useStyles } from '../../../../styles'
-import { Button, ButtonProps } from '../../../elements/Button'
-import { Icons } from '../../../elements/Icon/generated/Icons'
-import { Icon } from '../../../elements/Icon/Icon'
+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/index.ts b/src/components/index.ts
index 487c2f0a7..4504bd18e 100644
--- a/src/components/index.ts
+++ b/src/components/index.ts
@@ -1,2 +1,38 @@
-export * from './elements'
+export * from './Alert'
+export * from './AriaControlNav'
+export * from './Breadcrumb'
+export * from './Button'
+export * from './ButtonGroup'
+export * from './Calendar'
+export * from './Currency'
+export * from './Dropdown'
+export * from './FileUploader'
+export * from './Flow'
+export * from './FormControl'
+export * from './Grid'
+export * from './Heading'
+export * from './HeadingSection'
+export * from './Highlight'
+export * from './Icon'
+export * from './InfoLabel'
+export * from './Link'
+export * from './Modal'
+export * from './MonthPicker'
+export * from './Number'
+export * from './Paginator'
+export * from './Paper'
+export * from './Popover'
+export * from './Popper'
+export * from './Portal'
+export * from './Progress'
+export * from './RootRef'
+export * from './SelectInline'
+export * from './Spinner'
+export * from './StickyContainer'
+export * from './Table'
+export * from './Tabs'
+export * from './Tag'
+export * from './Text'
+export * from './Tooltip'
+
 export * from './form'
diff --git a/tools/generateIconsIndex.js b/tools/generateIconsIndex.js
index 30f4a1c74..b5889680b 100644
--- a/tools/generateIconsIndex.js
+++ b/tools/generateIconsIndex.js
@@ -2,41 +2,49 @@ const filewalker = require('./filewalker')
 const path = require('path')
 const fs = require('fs')
 
-filewalker(path.join(__dirname, '../src/components/elements/Icon/generated'), (err, data) => {
-    if (err) {
-        throw err
-    }
-
-    let writeStream = fs.createWriteStream(path.join(__dirname, '../src/components/elements/Icon/generated/Icons.ts'))
-
-    const components = []
-
-    data.sort((a, b) => {
-        if (a.toLowerCase() < b.toLowerCase()) { return -1 }
-        if (a.toLowerCase() > b.toLowerCase()) { return 1 }
-        return 0
-    }).map(file => {
-        const fileName = file.substring(file.lastIndexOf('/') + 1, file.indexOf('.tsx'))
-        writeStream.write(`import { default as ${fileName} } from './${fileName}'\n`)
-        components.push(fileName)
+filewalker(path.join(__dirname, '../src/components/Icon/generated'), (err, data) => {
+  if (err) {
+    throw err
+  }
+
+  let writeStream = fs.createWriteStream(path.join(__dirname, '../src/components/Icon/generated/Icons.ts'))
+
+  const components = []
+
+  data
+    .sort((a, b) => {
+      if (a.toLowerCase() < b.toLowerCase()) {
+        return -1
+      }
+      if (a.toLowerCase() > b.toLowerCase()) {
+        return 1
+      }
+      return 0
+    })
+    .map(file => {
+      const fileName = file.substring(file.lastIndexOf('/') + 1, file.indexOf('.tsx'))
+      writeStream.write(`import { default as ${fileName} } from './${fileName}'\n`)
+      components.push(fileName)
     })
 
-    writeStream.write('\n')
+  writeStream.write('\n')
 
-    writeStream.write('export type Icons =\n')
-    components.forEach(component =>
-        writeStream.write(`    | '${component.substring(0, 1).toLowerCase() + component.substring(1)}'\n`))
+  writeStream.write('export type Icons =\n')
+  components.forEach(component =>
+    writeStream.write(`    | '${component.substring(0, 1).toLowerCase() + component.substring(1)}'\n`)
+  )
 
-    writeStream.write('\n')
+  writeStream.write('\n')
 
-    writeStream.write('export const IconMap: {\n')
-    writeStream.write('    [key in Icons]: React.ComponentType<React.SVGProps<SVGSVGElement>>\n')
-    writeStream.write('} = {\n')
+  writeStream.write('export const IconMap: {\n')
+  writeStream.write('    [key in Icons]: React.ComponentType<React.SVGProps<SVGSVGElement>>\n')
+  writeStream.write('} = {\n')
 
-    components.forEach(component => writeStream.write(`    '${component.substring(0, 1).toLowerCase()
-        + component.substring(1)}': ${component},\n`))
+  components.forEach(component =>
+    writeStream.write(`    '${component.substring(0, 1).toLowerCase() + component.substring(1)}': ${component},\n`)
+  )
 
-    writeStream.write('}')
-    writeStream.write('\n')
-    writeStream.end()
+  writeStream.write('}')
+  writeStream.write('\n')
+  writeStream.end()
 })


Test patch:
diff --git a/src/components/elements/Alert/Alert.stories.tsx b/src/components/Alert/Alert.stories.tsx
similarity index 100%
rename from src/components/elements/Alert/Alert.stories.tsx
rename to src/components/Alert/Alert.stories.tsx
diff --git a/src/components/elements/Alert/Alert.test.tsx b/src/components/Alert/Alert.test.tsx
similarity index 96%
rename from src/components/elements/Alert/Alert.test.tsx
rename to src/components/Alert/Alert.test.tsx
index c6ac3fba1..3be7cb5ae 100644
--- a/src/components/elements/Alert/Alert.test.tsx
+++ b/src/components/Alert/Alert.test.tsx
@@ -1,8 +1,8 @@
 import React from 'react'
 import { fireEvent, render } from 'react-testing-library'
 
-import { LocaleContext } from '../../../locale'
-import ptBr from '../../../locale/locales/pt-BR'
+import { LocaleContext } from '../../locale'
+import ptBr from '../../locale/locales/pt-BR'
 
 import { Alert } from './Alert'
 
diff --git a/src/components/elements/Alert/__snapshots__/Alert.test.tsx.snap b/src/components/Alert/__snapshots__/Alert.test.tsx.snap
similarity index 100%
rename from src/components/elements/Alert/__snapshots__/Alert.test.tsx.snap
rename to src/components/Alert/__snapshots__/Alert.test.tsx.snap
diff --git a/src/components/elements/Alert/index.ts b/src/components/Alert/index.ts
similarity index 100%
rename from src/components/elements/Alert/index.ts
rename to src/components/Alert/index.ts
diff --git a/src/components/elements/AriaControlNav/AriaControlNav.tsx b/src/components/AriaControlNav/AriaControlNav.tsx
similarity index 100%
rename from src/components/elements/AriaControlNav/AriaControlNav.tsx
rename to src/components/AriaControlNav/AriaControlNav.tsx
diff --git a/src/components/elements/AriaControlNav/index.ts b/src/components/AriaControlNav/index.ts
similarity index 100%
rename from src/components/elements/AriaControlNav/index.ts
rename to src/components/AriaControlNav/index.ts
diff --git a/src/components/elements/Breadcrumb/Breadcrumbs.stories.tsx b/src/components/Breadcrumb/Breadcrumbs.stories.tsx
similarity index 100%
rename from src/components/elements/Breadcrumb/Breadcrumbs.stories.tsx
rename to src/components/Breadcrumb/Breadcrumbs.stories.tsx
diff --git a/src/components/elements/Breadcrumb/Breadcrumbs.test.tsx b/src/components/Breadcrumb/Breadcrumbs.test.tsx
similarity index 90%
rename from src/components/elements/Breadcrumb/Breadcrumbs.test.tsx
rename to src/components/Breadcrumb/Breadcrumbs.test.tsx
index 1e2cd2521..424bd1dc1 100644
--- a/src/components/elements/Breadcrumb/Breadcrumbs.test.tsx
+++ b/src/components/Breadcrumb/Breadcrumbs.test.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { render } from 'react-testing-library'
 
-import { Link } from '../../elements/Link'
+import { Link } from '../Link'
 
 import { Breadcrumbs } from './Breadcrumbs'
 
diff --git a/src/components/elements/ButtonGroup/__snapshots__/ButtonGroup.test.tsx.snap b/src/components/ButtonGroup/__snapshots__/ButtonGroup.test.tsx.snap
similarity index 100%
rename from src/components/elements/ButtonGroup/__snapshots__/ButtonGroup.test.tsx.snap
rename to src/components/ButtonGroup/__snapshots__/ButtonGroup.test.tsx.snap
diff --git a/src/components/elements/ButtonGroup/index.ts b/src/components/ButtonGroup/index.ts
similarity index 100%
rename from src/components/elements/ButtonGroup/index.ts
rename to src/components/ButtonGroup/index.ts
diff --git a/src/components/elements/Calendar/Calendar.stories.tsx b/src/components/Calendar/Calendar.stories.tsx
similarity index 100%
rename from src/components/elements/Calendar/Calendar.stories.tsx
rename to src/components/Calendar/Calendar.stories.tsx
diff --git a/src/components/elements/Calendar/Calendar.test.tsx b/src/components/Calendar/Calendar.test.tsx
similarity index 99%
rename from src/components/elements/Calendar/Calendar.test.tsx
rename to src/components/Calendar/Calendar.test.tsx
index 5b62ceec3..2ff8ba18e 100644
--- a/src/components/elements/Calendar/Calendar.test.tsx
+++ b/src/components/Calendar/Calendar.test.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { fireEvent, render } from 'react-testing-library'
 
-import { createTheme } from '../../../styles'
+import { createTheme } from '../../styles'
 
 import * as CalendarModule from './Calendar'
 import { Calendar, createDayStyles, defaultModifiers, defaultModifierStyles } from './Calendar'
diff --git a/src/components/elements/Calendar/MonthControl.test.tsx b/src/components/Calendar/MonthControl.test.tsx
similarity index 94%
rename from src/components/elements/Calendar/MonthControl.test.tsx
rename to src/components/Calendar/MonthControl.test.tsx
index 935f08623..dc19310d7 100644
--- a/src/components/elements/Calendar/MonthControl.test.tsx
+++ b/src/components/Calendar/MonthControl.test.tsx
@@ -1,8 +1,8 @@
 import React from 'react'
 import { fireEvent, render } from 'react-testing-library'
 
-import { LocaleContext } from '../../../locale'
-import ptBr from '../../../locale/locales/pt-BR'
+import { LocaleContext } from '../../locale'
+import ptBr from '../../locale/locales/pt-BR'
 
 import { MonthControl } from './MonthControl'
 
diff --git a/src/components/elements/Calendar/YearControl.test.tsx b/src/components/Calendar/YearControl.test.tsx
similarity index 94%
rename from src/components/elements/Calendar/YearControl.test.tsx
rename to src/components/Calendar/YearControl.test.tsx
index 4b4981c10..da87b24d9 100644
--- a/src/components/elements/Calendar/YearControl.test.tsx
+++ b/src/components/Calendar/YearControl.test.tsx
@@ -1,8 +1,8 @@
 import React from 'react'
 import { fireEvent, render } from 'react-testing-library'
 
-import { LocaleContext } from '../../../locale'
-import ptBr from '../../../locale/locales/pt-BR'
+import { LocaleContext } from '../../locale'
+import ptBr from '../../locale/locales/pt-BR'
 
 import { YearControl } from './YearControl'
 
diff --git a/src/components/elements/Dropdown/Dropdown.stories.tsx b/src/components/Dropdown/Dropdown.stories.tsx
similarity index 100%
rename from src/components/elements/Dropdown/Dropdown.stories.tsx
rename to src/components/Dropdown/Dropdown.stories.tsx
diff --git a/src/components/elements/Dropdown/Dropdown.test.tsx b/src/components/Dropdown/Dropdown.test.tsx
similarity index 98%
rename from src/components/elements/Dropdown/Dropdown.test.tsx
rename to src/components/Dropdown/Dropdown.test.tsx
index abd6528d9..db2b4e54e 100644
--- a/src/components/elements/Dropdown/Dropdown.test.tsx
+++ b/src/components/Dropdown/Dropdown.test.tsx
@@ -1,7 +1,7 @@
 import React, { createRef } from 'react'
 import { fireEvent, render, wait } from 'react-testing-library'
 
-import * as stringUtils from '../../../util/string'
+import * as stringUtils from '../../util/string'
 
 import { Dropdown, DropdownProps } from './Dropdown'
 import { DropdownItem } from './DropdownItem'
diff --git a/src/components/elements/Dropdown/DropdownButton.test.tsx b/src/components/Dropdown/DropdownButton.test.tsx
similarity index 97%
rename from src/components/elements/Dropdown/DropdownButton.test.tsx
rename to src/components/Dropdown/DropdownButton.test.tsx
index bcb95d96a..c6f9ea20c 100644
--- a/src/components/elements/Dropdown/DropdownButton.test.tsx
+++ b/src/components/Dropdown/DropdownButton.test.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 import { fireEvent, render, wait } from 'react-testing-library'
-import * as stringUtils from '../../../util/string'
+import * as stringUtils from '../../util/string'
 import { Icon } from '../Icon'
 import { DropdownButton, DropdownButtonProps } from './DropdownButton'
 ;(stringUtils as any).randomStr = jest.fn(() => 'abc')
diff --git a/src/components/elements/FormControl/FormLabel.test.tsx b/src/components/FormControl/FormLabel.test.tsx
similarity index 89%
rename from src/components/elements/FormControl/FormLabel.test.tsx
rename to src/components/FormControl/FormLabel.test.tsx
index dd5772e29..29fec204a 100644
--- a/src/components/elements/FormControl/FormLabel.test.tsx
+++ b/src/components/FormControl/FormLabel.test.tsx
@@ -1,8 +1,8 @@
 import React from 'react'
 import { render } from 'react-testing-library'
 
-import { LocaleContext } from '../../../locale'
-import ptBr from '../../../locale/locales/pt-BR'
+import { LocaleContext } from '../../locale'
+import ptBr from '../../locale/locales/pt-BR'
 
 import { FormLabel } from './'
 
diff --git a/src/components/elements/Link/__snapshots__/Link.test.tsx.snap b/src/components/Link/__snapshots__/Link.test.tsx.snap
similarity index 100%
rename from src/components/elements/Link/__snapshots__/Link.test.tsx.snap
rename to src/components/Link/__snapshots__/Link.test.tsx.snap
diff --git a/src/components/elements/Link/index.ts b/src/components/Link/index.ts
similarity index 100%
rename from src/components/elements/Link/index.ts
rename to src/components/Link/index.ts
diff --git a/src/components/elements/Modal/Modal.stories.tsx b/src/components/Modal/Modal.stories.tsx
similarity index 100%
rename from src/components/elements/Modal/Modal.stories.tsx
rename to src/components/Modal/Modal.stories.tsx
diff --git a/src/components/elements/Modal/Modal.test.tsx b/src/components/Modal/Modal.test.tsx
similarity index 98%
rename from src/components/elements/Modal/Modal.test.tsx
rename to src/components/Modal/Modal.test.tsx
index 95f21856f..3c7e5b4a3 100644
--- a/src/components/elements/Modal/Modal.test.tsx
+++ b/src/components/Modal/Modal.test.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { fireEvent, render, wait } from 'react-testing-library'
 
-import * as stringUtils from '../../../util/string'
+import * as stringUtils from '../../util/string'
 
 import { Modal, ModalProps } from './Modal'
 ;(stringUtils as any).randomStr = jest.fn(() => 'abc')
diff --git a/src/components/elements/Modal/ModalContainer.test.tsx b/src/components/Modal/ModalContainer.test.tsx
similarity index 91%
rename from src/components/elements/Modal/ModalContainer.test.tsx
rename to src/components/Modal/ModalContainer.test.tsx
index 809ff6b24..fdb9f1236 100644
--- a/src/components/elements/Modal/ModalContainer.test.tsx
+++ b/src/components/Modal/ModalContainer.test.tsx
@@ -1,9 +1,9 @@
 import * as React from 'react'
 import { fireEvent, render } from 'react-testing-library'
 
-import { LocaleContext } from '../../../locale'
-import ptBr from '../../../locale/locales/pt-BR'
-import * as stringUtils from '../../../util/string'
+import { LocaleContext } from '../../locale'
+import ptBr from '../../locale/locales/pt-BR'
+import * as stringUtils from '../../util/string'
 
 import { ModalContainer } from './ModalContainer'
 ;(stringUtils as any).randomStr = jest.fn(() => 'abc')
diff --git a/src/components/elements/Modal/__snapshots__/Modal.test.tsx.snap b/src/components/Modal/__snapshots__/Modal.test.tsx.snap
similarity index 100%
rename from src/components/elements/Modal/__snapshots__/Modal.test.tsx.snap
rename to src/components/Modal/__snapshots__/Modal.test.tsx.snap
diff --git a/src/components/elements/Modal/__snapshots__/ModalBackdrop.test.tsx.snap b/src/components/Modal/__snapshots__/ModalBackdrop.test.tsx.snap
similarity index 100%
rename from src/components/elements/Modal/__snapshots__/ModalBackdrop.test.tsx.snap
rename to src/components/Modal/__snapshots__/ModalBackdrop.test.tsx.snap
diff --git a/src/components/elements/Modal/__snapshots__/ModalBody.test.tsx.snap b/src/components/Modal/__snapshots__/ModalBody.test.tsx.snap
similarity index 100%
rename from src/components/elements/Modal/__snapshots__/ModalBody.test.tsx.snap
rename to src/components/Modal/__snapshots__/ModalBody.test.tsx.snap
diff --git a/src/components/elements/Modal/__snapshots__/ModalContainer.test.tsx.snap b/src/components/Modal/__snapshots__/ModalContainer.test.tsx.snap
similarity index 100%
rename from src/components/elements/Modal/__snapshots__/ModalContainer.test.tsx.snap
rename to src/components/Modal/__snapshots__/ModalContainer.test.tsx.snap
diff --git a/src/components/elements/Modal/__snapshots__/ModalFooter.test.tsx.snap b/src/components/Modal/__snapshots__/ModalFooter.test.tsx.snap
similarity index 100%
rename from src/components/elements/Modal/__snapshots__/ModalFooter.test.tsx.snap
rename to src/components/Modal/__snapshots__/ModalFooter.test.tsx.snap
diff --git a/src/components/elements/Modal/auto/ModalAuto.test.tsx b/src/components/Modal/auto/ModalAuto.test.tsx
similarity index 96%
rename from src/components/elements/Modal/auto/ModalAuto.test.tsx
rename to src/components/Modal/auto/ModalAuto.test.tsx
index e2cb21cf6..b1d36a138 100644
--- a/src/components/elements/Modal/auto/ModalAuto.test.tsx
+++ b/src/components/Modal/auto/ModalAuto.test.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { fireEvent, render } from 'react-testing-library'
 
-import * as stringUtils from '../../../../util/string'
+import * as stringUtils from '../../../util/string'
 
 import { ModalAuto } from './ModalAuto'
 ;(stringUtils as any).randomStr = jest.fn(() => 'abc')
diff --git a/src/components/elements/Paginator/Paginator.stories.tsx b/src/components/Paginator/Paginator.stories.tsx
similarity index 100%
rename from src/components/elements/Paginator/Paginator.stories.tsx
rename to src/components/Paginator/Paginator.stories.tsx
diff --git a/src/components/elements/Paginator/Paginator.test.tsx b/src/components/Paginator/Paginator.test.tsx
similarity index 96%
rename from src/components/elements/Paginator/Paginator.test.tsx
rename to src/components/Paginator/Paginator.test.tsx
index b27ab7eae..e6912c903 100644
--- a/src/components/elements/Paginator/Paginator.test.tsx
+++ b/src/components/Paginator/Paginator.test.tsx
@@ -2,8 +2,8 @@ import React from 'react'
 import { fireEvent, render } from 'react-testing-library'
 
 import { Paginator } from './Paginator'
-import ptBr from '../../../locale/locales/pt-BR'
-import { LocaleContext } from '../../../locale'
+import ptBr from '../../locale/locales/pt-BR'
+import { LocaleContext } from '../../locale'
 
 it('should render correctly', () => {
   expect(render(<Paginator page={5} total={10} />).container).toMatchSnapshot()
diff --git a/src/components/elements/SelectInline/SelectInline.test.tsx b/src/components/SelectInline/SelectInline.test.tsx
similarity index 97%
rename from src/components/elements/SelectInline/SelectInline.test.tsx
rename to src/components/SelectInline/SelectInline.test.tsx
index 0320b9a50..82e1d6903 100644
--- a/src/components/elements/SelectInline/SelectInline.test.tsx
+++ b/src/components/SelectInline/SelectInline.test.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { fireEvent, render, wait } from 'react-testing-library'
 
-import { DefaultItemType } from '../../form'
+import { DefaultItemType } from '../form'
 
 import { SelectInline, SelectInlineProps } from './SelectInline'
 
diff --git a/src/components/elements/Tooltip/Tooltip.stories.tsx b/src/components/Tooltip/Tooltip.stories.tsx
similarity index 100%
rename from src/components/elements/Tooltip/Tooltip.stories.tsx
rename to src/components/Tooltip/Tooltip.stories.tsx
diff --git a/src/components/elements/Tooltip/Tooltip.test.tsx b/src/components/Tooltip/Tooltip.test.tsx
similarity index 98%
rename from src/components/elements/Tooltip/Tooltip.test.tsx
rename to src/components/Tooltip/Tooltip.test.tsx
index cd9999212..d70ba2e81 100644
--- a/src/components/elements/Tooltip/Tooltip.test.tsx
+++ b/src/components/Tooltip/Tooltip.test.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { fireEvent, render } from 'react-testing-library'
 
-import * as stringUtils from '../../../util/string'
+import * as stringUtils from '../../util/string'
 
 import { Tooltip, TooltipProps } from './Tooltip'
 
diff --git a/src/components/elements/textual/maskedLabels/maskedLabels.test.tsx b/src/components/elements/textual/maskedLabels/maskedLabels.test.tsx
deleted file mode 100644
index c3f8f85fe..000000000
--- a/src/components/elements/textual/maskedLabels/maskedLabels.test.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import React from 'react'
-import { render } from 'react-testing-library'
-
-import { Cep, Cpf, Telefone } from './maskedLabels'
-
-describe('Telefone', () => {
-  it('deve formatar um telefone corretamente', () => {
-    expect(render(<Telefone value='47997773734' />).container.innerHTML).toEqual('(47) 99777-3734')
-    expect(render(<Telefone value='4799777373' />).container.innerHTML).toEqual('(47) 9977-7373')
-    expect(render(<Telefone value='123' />).container.innerHTML).toEqual('(12) 3')
-    expect(
-      render(
-        <span>
-          <Telefone value='' />
-        </span>
-      ).container.innerText
-    ).toBeFalsy()
-    expect(
-      render(
-        <span>
-          <Telefone value={null} />
-        </span>
-      ).container.innerText
-    ).toBeFalsy()
-  })
-})
-
-describe('Cpf', () => {
-  it('deve formatar um CPF corretamente', () => {
-    expect(render(<Cpf value='08552654938' />).container.innerHTML).toEqual('085.526.549-38')
-  })
-})
-
-describe('Cep', () => {
-  it('deve formatar um CEP corretamente', () => {
-    expect(render(<Cep value='88040420' />).container.innerHTML).toEqual('88040-420')
-  })
-})
diff --git a/src/components/form/input/Select/SelectMulti/MultiDownshift.test.tsx b/src/components/form/input/Select/SelectMulti/MultiDownshift.test.tsx
index 7780ea1f7..b7afd6d39 100644
--- a/src/components/form/input/Select/SelectMulti/MultiDownshift.test.tsx
+++ b/src/components/form/input/Select/SelectMulti/MultiDownshift.test.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { act, render } from 'react-testing-library'
 
-import { DefaultItemType } from '../SelectSingle/SelectSingle'
+import { DefaultItemType } from '../SelectSingle'
 
 import { MultiDownshift, MultiDownshiftProps } from './MultiDownshift'
 
diff --git a/src/components/form/input/Select/SelectMulti/SelectMulti.test.tsx b/src/components/form/input/Select/SelectMulti/SelectMulti.test.tsx
index 3b198b746..ab27e10bc 100644
--- a/src/components/form/input/Select/SelectMulti/SelectMulti.test.tsx
+++ b/src/components/form/input/Select/SelectMulti/SelectMulti.test.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { fireEvent, render } from 'react-testing-library'
 
-import { DefaultItemType } from '../SelectSingle/SelectSingle'
+import { DefaultItemType } from '../SelectSingle'
 
 import { SelectMulti, SelectMultiProps } from './SelectMulti'
 
diff --git a/src/components/form/input/TextInput/InputWrapper.test.tsx b/src/components/form/input/TextInput/InputWrapper.test.tsx
index 0c8b493bc..582f9438a 100644
--- a/src/components/form/input/TextInput/InputWrapper.test.tsx
+++ b/src/components/form/input/TextInput/InputWrapper.test.tsx
@@ -1,7 +1,7 @@
 import React from 'react'
 import { render } from 'react-testing-library'
 
-import { Input } from '../Input/Input'
+import { Input } from '../Input'
 
 import { InputWrapper } from './InputWrapper'