diff --git a/packages/icons/categories.yml b/packages/icons/categories.yml
index 43ce95f2e..4066109eb 100644
--- a/packages/icons/categories.yml
+++ b/packages/icons/categories.yml
@@ -58,7 +58,9 @@ categories:
- search--solid
- search
- settings
+ - star--filled
- star--solid
+ - star
- subtract--outline
- subtract
- upload
diff --git a/packages/icons/icons.yml b/packages/icons/icons.yml
index 907f6c99f..81f0c7482 100644
--- a/packages/icons/icons.yml
+++ b/packages/icons/icons.yml
@@ -329,12 +329,24 @@
- WFP legacy icons
sizes:
- glyph
+- name: star--filled
+ friendly_name: star--filled
+ aliases:
+ - WFP legacy icons
+ sizes:
+ - glyph
- name: star--solid
friendly_name: star--solid
aliases:
- WFP legacy icons
sizes:
- glyph
+- name: star
+ friendly_name: star
+ aliases:
+ - WFP legacy icons
+ sizes:
+ - glyph
- name: subtract--outline
friendly_name: subtract--outline
aliases:
diff --git a/packages/icons/src/svg/star--filled.svg b/packages/icons/src/svg/star--filled.svg
new file mode 100755
index 000000000..834f8a214
--- /dev/null
+++ b/packages/icons/src/svg/star--filled.svg
@@ -0,0 +1,11 @@
+
+
+
+
+star--filled
+
+
+
diff --git a/packages/icons/src/svg/star.svg b/packages/icons/src/svg/star.svg
new file mode 100755
index 000000000..4b176cae8
--- /dev/null
+++ b/packages/icons/src/svg/star.svg
@@ -0,0 +1,13 @@
+
+
+
+
+star
+
+
+
diff --git a/packages/icons/tasks/create-iconlist.js b/packages/icons/tasks/create-iconlist.js
index c92570abc..87ac8b3c4 100644
--- a/packages/icons/tasks/create-iconlist.js
+++ b/packages/icons/tasks/create-iconlist.js
@@ -42,12 +42,12 @@ fs.readdirSync(testFolder16).forEach((file) => {
- 16`;
});
-fs.writeFile('../icons.yml', icons, (err) => {
+fs.writeFile('./icons.yml', icons, (err) => {
if (err) throw err;
});
-// Write data in 'Output.txt' .
+// Write categories in 'categories.yml' .
-fs.writeFile('../categories.yml', categoryList, (err) => {
+fs.writeFile('./categories.yml', categoryList, (err) => {
if (err) throw err;
});
diff --git a/packages/logos/readme.md b/packages/logos/readme.md
index e427bc72a..cb38fd5fe 100644
--- a/packages/logos/readme.md
+++ b/packages/logos/readme.md
@@ -1,45 +1,3 @@
-# World Food Programme UI Kit (WFP-UI) Logos
-
-Status: work in progress
-
-This repository features the Logo assets of the World Food Programme.
-
-### CDN usage:
-
-All logos are available on WFP's CDN.
-By using `latest` your application will always show the latest logos. Otherwise you can use a version like `0.0.1` for fixed versioning.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- https://uikit.wfp.org/cdn/logos/latest/wfpLogoAcronymBlackAll.svg
- https://uikit.wfp.org/cdn/logos/latest/wfpLogoAcronymBlueAll.svg
diff --git a/packages/styles/scss/components/hero/_hero.scss b/packages/styles/scss/components/hero/_hero.scss
index 504d711d6..e9d1136c1 100644
--- a/packages/styles/scss/components/hero/_hero.scss
+++ b/packages/styles/scss/components/hero/_hero.scss
@@ -200,6 +200,7 @@
.#{$prefix}--photo-card--splash {
.#{$prefix}--photo-card__info__title {
@include type.type-style('productive-heading-04');
+ font-weight: 600;
}
}
diff --git a/packages/styles/scss/components/tabs/_tabs.scss b/packages/styles/scss/components/tabs/_tabs.scss
index dd4966d06..0c278b937 100644
--- a/packages/styles/scss/components/tabs/_tabs.scss
+++ b/packages/styles/scss/components/tabs/_tabs.scss
@@ -48,7 +48,7 @@
.#{$prefix}--tabs__nav__bar {
position: absolute;
transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
- background: $overlay;
+ background: $interactive;
z-index: 10;
height: 3px;
bottom: 0;
diff --git a/packages/type/src/styles.js b/packages/type/src/styles.js
index 6bf4ec00d..054d1d608 100644
--- a/packages/type/src/styles.js
+++ b/packages/type/src/styles.js
@@ -10,6 +10,7 @@ import { fontWeights } from './fontWeight';
import { fontFamilies } from './fontFamily';
import { scale } from './scale';
+// 12px
export const caption01 = {
fontSize: rem(scale[0]),
fontWeight: fontWeights.regular,
@@ -17,6 +18,7 @@ export const caption01 = {
letterSpacing: px(0.32),
};
+// 14px
export const caption02 = {
fontSize: rem(scale[1]),
fontWeight: fontWeights.regular,
@@ -24,6 +26,7 @@ export const caption02 = {
letterSpacing: px(0.32),
};
+// 12px
export const label01 = {
fontSize: rem(scale[0]),
fontWeight: fontWeights.regular,
@@ -31,6 +34,7 @@ export const label01 = {
letterSpacing: px(0.32),
};
+// 14px
export const label02 = {
fontSize: rem(scale[1]),
fontWeight: fontWeights.regular,
@@ -38,46 +42,49 @@ export const label02 = {
letterSpacing: px(0.32),
};
+// 12px
export const helperText01 = {
fontSize: rem(scale[0]),
lineHeight: 1.34,
letterSpacing: px(0.32),
};
+// 14px
export const helperText02 = {
fontSize: rem(scale[1]),
lineHeight: 1.29,
letterSpacing: px(0.32),
};
+// 14px
export const bodyShort01 = {
fontSize: rem(scale[1]),
fontWeight: fontWeights.regular,
lineHeight: 1.29,
letterSpacing: px(0.16),
};
-
+// 14px
export const bodyLong01 = {
fontSize: rem(scale[1]),
fontWeight: fontWeights.regular,
lineHeight: 1.43,
letterSpacing: px(0.16),
};
-
+// 16px
export const bodyShort02 = {
fontSize: rem(scale[2]),
fontWeight: fontWeights.regular,
lineHeight: 1.375,
letterSpacing: 0,
};
-
+// 16px
export const bodyLong02 = {
fontSize: rem(scale[2]),
fontWeight: fontWeights.regular,
lineHeight: 1.5,
letterSpacing: 0,
};
-
+// 12px
export const code01 = {
fontFamily: fontFamilies.mono,
fontSize: rem(scale[0]),
@@ -85,7 +92,7 @@ export const code01 = {
lineHeight: 1.34,
letterSpacing: px(0.32),
};
-
+// 14px
export const code02 = {
fontFamily: fontFamilies.mono,
fontSize: rem(scale[2]),
@@ -93,14 +100,14 @@ export const code02 = {
lineHeight: 1.43,
letterSpacing: px(0.32),
};
-
+// 14px
export const heading01 = {
fontSize: rem(scale[1]),
fontWeight: fontWeights.semibold,
lineHeight: 1.29,
letterSpacing: px(0.16),
};
-
+// 16px
export const heading02 = {
fontSize: rem(scale[2]),
fontWeight: fontWeights.semibold,
@@ -111,11 +118,13 @@ export const heading02 = {
// customize productiveHeading01 to be prev heading01
export const productiveHeading01 = heading02;
+// 18px
export const productiveHeading02 = {
...heading02,
fontSize: rem(scale[3]),
};
+// 20px
export const productiveHeading03 = {
fontSize: rem(scale[4]),
fontWeight: fontWeights.semibold,
@@ -123,30 +132,31 @@ export const productiveHeading03 = {
letterSpacing: 0,
};
+// 22px prev:28px
export const productiveHeading04 = {
- fontSize: rem(scale[6]),
+ fontSize: rem(22),
fontWeight: fontWeights.semibold,
lineHeight: 1.29,
letterSpacing: 0,
};
-
+// 24px prev:32px
export const productiveHeading05 = {
fontSize: rem(scale[5]),
fontWeight: fontWeights.semibold,
lineHeight: 1.25,
letterSpacing: 0,
};
-
+// 28 prev:42px
export const productiveHeading06 = {
- fontSize: rem(scale[9]),
- fontWeight: fontWeights.light,
+ fontSize: rem(scale[6]),
+ fontWeight: fontWeights.semibold,
lineHeight: 1.199,
letterSpacing: 0,
};
-
+// 54px
export const productiveHeading07 = {
fontSize: rem(scale[11]),
- fontWeight: fontWeights.light,
+ fontWeight: fontWeights.semibold,
lineHeight: 1.19,
letterSpacing: 0,
};
diff --git a/packages/ui/src/components/Card/Card.stories.js b/packages/ui/src/components/Card/Card.stories.js
index c62d59867..06f01635d 100644
--- a/packages/ui/src/components/Card/Card.stories.js
+++ b/packages/ui/src/components/Card/Card.stories.js
@@ -5,7 +5,7 @@ import cardTwig from './Card.twig';
import Button from '../Button';
import { Card, CardExternal } from '.';
-import { StarSolidGlyph } from '@wfp/icons-react';
+import { StarSolidGlyph, StarGlyph } from '@wfp/icons-react';
export default {
title: 'Components/Content Related/Card',
@@ -74,7 +74,7 @@ export const External = (args) => (
className={`wfp--card-ext__action wfp--card-ext__action--align-to-right`}
kind="ghost"
small
- icon={StarSolidGlyph}
+ icon={StarGlyph}
iconDescription="FavoriteOutline16"
/>
diff --git a/packages/ui/src/components/Footer/Footer.js b/packages/ui/src/components/Footer/Footer.js
index e132f2e5e..aa4e5ba89 100755
--- a/packages/ui/src/components/Footer/Footer.js
+++ b/packages/ui/src/components/Footer/Footer.js
@@ -34,6 +34,7 @@ const Footer = ({
sdgLogo,
pageWidth,
productName,
+ socialIcons,
...other
}) => {
const classNames = classnames(
@@ -45,7 +46,7 @@ const Footer = ({
const footer =
external ? (
- {children}
+ {children}
) :
(
);
@@ -210,3 +264,131 @@ OverrideLogos.story = {
},
},
};
+
+
+/**
+ * Twitter social icon
+ */
+const TwitterIcon = () => (
+
+ Twitter icon
+
+
+
+
+
+
+
+
+
+);
+
+/**
+ * Facebook social icon
+ */
+const FacebookIcon = () => (
+
+ Facebook icon
+
+
+
+
+
+
+
+
+
+);
+
+/**
+ * Instagram social icon
+ */
+const InstagramIcon = () => (
+
+ Instagram icon
+
+
+
+
+
+
+
+
+
+);
+
+/**
+ * LinkedIn social icon
+ */
+const LinkedinIcon = () => (
+
+ LinkedIn icon
+
+
+
+
+
+
+
+
+
+);
+
+/**
+ * YouTube social icon
+ */
+const YoutubeIcon = () => (
+
+ YouTube icon
+
+
+
+
+
+
+
+
+
+);
+
+/**
+ * TikTok social icon
+ */
+const TiktokIcon = () => (
+
+ TikTok icon
+
+
+
+
+
+
+
+
+
+);
\ No newline at end of file
diff --git a/packages/ui/src/components/Footer/FooterExternal.js b/packages/ui/src/components/Footer/FooterExternal.js
index 26069a5f4..0aa9f9630 100644
--- a/packages/ui/src/components/Footer/FooterExternal.js
+++ b/packages/ui/src/components/Footer/FooterExternal.js
@@ -15,6 +15,7 @@ const FooterExternal = ({
children,
metaContent,
metaLinks,
+ socialIcons,
}) => {
const externalClasses = classnames(`${prefix}--footer-ext`, className);
return (
@@ -31,63 +32,18 @@ const FooterExternal = ({
{metaContent}
+ {socialIcons && (
+ )
+ }
+
-
-
+ {children}
@@ -112,34 +68,10 @@ FooterExternal.propTypes = {
children: PropTypes.node,
metaContent: PropTypes.node,
metaLinks: PropTypes.node,
-};
-
-const LinksColumn = () => {
- return (
-
- {/* Title is optional */}
-
Title
-
-
-
- First link
-
-
- Second link
-
-
- Third link
-
-
- Fourth link
-
-
- Fifth link
-
-
-
-
- );
+ /**
+ * Use this prop when you want to add any social icons
+ */
+ socialIcons: PropTypes.node
};
const FooterMetaLink = ({ className, href, children }) => {
@@ -163,131 +95,6 @@ FooterMetaLink.propTypes = {
children: PropTypes.node,
};
-/**
- * Twitter social icon
- */
-const TwitterIcon = () => (
-
- Twitter icon
-
-
-
-
-
-
-
-
-
-);
-
-/**
- * Facebook social icon
- */
-const FacebookIcon = () => (
-
- Facebook icon
-
-
-
-
-
-
-
-
-
-);
-
-/**
- * Instagram social icon
- */
-const InstagramIcon = () => (
-
- Instagram icon
-
-
-
-
-
-
-
-
-
-);
-
-/**
- * LinkedIn social icon
- */
-const LinkedinIcon = () => (
-
- LinkedIn icon
-
-
-
-
-
-
-
-
-
-);
-
-/**
- * YouTube social icon
- */
-const YoutubeIcon = () => (
-
- YouTube icon
-
-
-
-
-
-
-
-
-
-);
-/**
- * TikTok social icon
- */
-const TiktokIcon = () => (
-
- TikTok icon
-
-
-
-
-
-
-
-
-
-);
-export { FooterExternal, LinksColumn, FooterMetaLink };
+export { FooterExternal, FooterMetaLink };
diff --git a/packages/ui/src/components/Hero/HeroExternal.js b/packages/ui/src/components/Hero/HeroExternal.js
index 2e3f0f2a0..c51a2860b 100644
--- a/packages/ui/src/components/Hero/HeroExternal.js
+++ b/packages/ui/src/components/Hero/HeroExternal.js
@@ -1,6 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
import Button from '../Button';
+import classNames from 'classnames';
import Wrapper from '../Wrapper';
import { settings } from '../../globals/js';
diff --git a/packages/ui/src/components/Search/Search.js b/packages/ui/src/components/Search/Search.js
index 684cd1d1b..261f0e28a 100644
--- a/packages/ui/src/components/Search/Search.js
+++ b/packages/ui/src/components/Search/Search.js
@@ -154,7 +154,7 @@ Search.propTypes = {
/**
* Specify a custom `id` for the input
*/
- id: PropTypes.string.isRequired,
+ id: PropTypes.string,
/**
* The new value is available first arg 'searchValue' and evt object if needed is on second arg.
diff --git a/packages/ui/src/components/Story/Story.stories.js b/packages/ui/src/components/Story/Story.stories.js
index 4c551c766..0e033090c 100644
--- a/packages/ui/src/components/Story/Story.stories.js
+++ b/packages/ui/src/components/Story/Story.stories.js
@@ -89,8 +89,8 @@ StoryText.story = {
};
const headingText = [
- { kind: 'h1', text: 'Heading 1', styling: '29px, SemiBold' },
- { kind: 'h2', text: 'Heading 2', styling: '25px, SemiBold' },
+ { kind: 'h1', text: 'Heading 1', styling: '28px, SemiBold' },
+ { kind: 'h2', text: 'Heading 2', styling: '24px, SemiBold' },
{ kind: 'h3', text: 'Heading 3', styling: '22px, SemiBold' },
{ kind: 'h4', text: 'Heading 4', styling: '20px, SemiBold' },
{ kind: 'h5', text: 'Heading 5', styling: '18px, SemiBold' },
diff --git a/packages/ui/src/components/Tooltip/Tooltip.js b/packages/ui/src/components/Tooltip/Tooltip.js
index 43f2f4ae6..952ae6bc8 100644
--- a/packages/ui/src/components/Tooltip/Tooltip.js
+++ b/packages/ui/src/components/Tooltip/Tooltip.js
@@ -127,7 +127,7 @@ Tooltip.propTypes = {
/**
* Provide the content for the tooltip
*/
- content: PropTypes.node,
+ content: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
/**
* Provide a dark styled tooltip
diff --git a/packages/ui/src/documentation/Intro/Intro.js b/packages/ui/src/documentation/Intro/Intro.js
index 17b2d6460..46e8be530 100644
--- a/packages/ui/src/documentation/Intro/Intro.js
+++ b/packages/ui/src/documentation/Intro/Intro.js
@@ -85,13 +85,13 @@ const Intro = () => (
- WFP Design System
+ WFP Digital Design System
v{process.env.STORYBOOK_NPM_VERSION}
- The World Food Programme’s Design System
+ The World Food Programme’s Digital Design System
provides you with guidelines, components and templates
to boost the user experience of your products.
diff --git a/packages/ui/src/documentation/RegularPage.js b/packages/ui/src/documentation/RegularPage.js
index 80034e675..591e5d639 100644
--- a/packages/ui/src/documentation/RegularPage.js
+++ b/packages/ui/src/documentation/RegularPage.js
@@ -2,7 +2,7 @@ import PropTypes from 'prop-types';
import React from 'react';
import Link from '../components/Link';
-import Footer from '../components/Footer';
+import {Footer} from '../components/Footer';
import Search from '../components/Search';
import {
@@ -18,7 +18,7 @@ import Tab from '../components/Tab';
import Button from '../components/Button';
-import MainNavigation from '../components/MainNavigation';
+import { MainNavigation } from '../components/MainNavigation';
import MainNavigationItem from '../components/MainNavigationItem';
import {
@@ -272,7 +272,8 @@ const RegularPage = ({
{children}
+ metaContent="WFP UI Kit version 1.0 – powered by RMT with full support of concerned divisions which are responsible for the accuracy of the content"
+ >
A label
diff --git a/packages/ui/src/documentation/samples/NotFound.stories.js b/packages/ui/src/documentation/samples/NotFound.stories.js
index 94018707c..84ee687b4 100644
--- a/packages/ui/src/documentation/samples/NotFound.stories.js
+++ b/packages/ui/src/documentation/samples/NotFound.stories.js
@@ -4,7 +4,7 @@ import Link from '../../components/Link';
import Story from '../../components/Story';
//import Icon from '../../components/Icon';
import Wrapper from '../../components/Wrapper';
-import { WfpHumEmergencyResponsePos } from '@wfp/pictograms-react';
+import { WfpHumEmergencyResponsePos, WfpHumAffectedPopulationNeg } from '@wfp/pictograms-react';
import markdown from './README.mdx';
export default {
title: 'Templates/Not found (404)',
@@ -22,7 +22,7 @@ export default {
export const Regular = (args) => (
-
-
-
- Under maintenance
+
+
+ Under maintenance
+
+ Apologies for the inconvenience; we are performing maintenance at the
+ moment.
+ [Name of solution] should be back shortly.
+
- Apologies for the inconvenience; we are performing maintenance at the moment.
- [Name of solution] should be back shortly.
+ Please contact{' '}
+
+ {' '}
+ IT.ServiceDesk@wfp.org{' '}
+ {' '}
+ if you have any questions or comments.
- Please contact IT.ServiceDesk@wfp.org if you have any questions or comments.
[Name] Team
-
-
+
+
`,
},
},
diff --git a/packages/ui/src/types/AnchorNavigation.d.ts b/packages/ui/src/types/AnchorNavigation.d.ts
new file mode 100644
index 000000000..91547d7f3
--- /dev/null
+++ b/packages/ui/src/types/AnchorNavigation.d.ts
@@ -0,0 +1,11 @@
+import * as React from 'react';
+
+declare namespace AnchorNavigation {
+ interface AnchorNavigationProps extends React.HTMLProps
{
+ title?: string
+ children?: React.ReactNode
+ }
+}
+
+declare class AnchorNavigation extends React.Component{ }
+export = AnchorNavigation
\ No newline at end of file
diff --git a/packages/ui/src/types/AuthLayout.d.ts b/packages/ui/src/types/AuthLayout.d.ts
new file mode 100644
index 000000000..b0712d7b9
--- /dev/null
+++ b/packages/ui/src/types/AuthLayout.d.ts
@@ -0,0 +1,12 @@
+import * as React from 'react'
+
+declare namespace AuthLayout {
+ interface AuthLayoutProps extends React.HTMLProps {
+ children: React.ReactNode
+ image?: React.ReactNode
+ backgroundContent?: React.ReactNode
+ }
+}
+
+declare class AuthLayout extends React.Component { }
+export = AuthLayout
\ No newline at end of file
diff --git a/packages/ui/src/types/BackgroundContent.d.ts b/packages/ui/src/types/BackgroundContent.d.ts
new file mode 100644
index 000000000..4e4ae6aac
--- /dev/null
+++ b/packages/ui/src/types/BackgroundContent.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react'
+
+declare namespace BackgroundContent {
+ interface BackgroundContentProps extends React.HTMLProps {
+ children: React.ReactNode
+ }
+}
+
+declare class BackgroundContent extends React.Component { }
+export = BackgroundContent
\ No newline at end of file
diff --git a/packages/ui/src/types/BannerNavigation.d.ts b/packages/ui/src/types/BannerNavigation.d.ts
new file mode 100644
index 000000000..b602b1070
--- /dev/null
+++ b/packages/ui/src/types/BannerNavigation.d.ts
@@ -0,0 +1,12 @@
+import * as React from 'react'
+import { ScreenSize } from './utils'
+
+declare namespace BannerNavigation {
+ interface BannerNavigationProps extends React.HTMLProps {
+ children: React.ReactNode
+ pageWidth?: ScreenSize
+ }
+}
+
+declare class BannerNavigation extends React.Component { }
+export = BannerNavigation
\ No newline at end of file
diff --git a/packages/ui/src/types/BannerNavigationItem.d.ts b/packages/ui/src/types/BannerNavigationItem.d.ts
new file mode 100644
index 000000000..7e4e0cf3b
--- /dev/null
+++ b/packages/ui/src/types/BannerNavigationItem.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react'
+
+declare namespace BannerNavigationItem {
+ interface BannerNavigationItemProps extends React.HTMLProps {
+ children: React.ReactNode
+ }
+}
+
+declare class BannerNavigationItem extends React.Component { }
+export = BannerNavigationItem
\ No newline at end of file
diff --git a/packages/ui/src/types/Blockquote.d.ts b/packages/ui/src/types/Blockquote.d.ts
new file mode 100644
index 000000000..bfa925401
--- /dev/null
+++ b/packages/ui/src/types/Blockquote.d.ts
@@ -0,0 +1,18 @@
+import * as React from 'react'
+import { IIcon, StatusKind } from './utils';
+
+declare namespace Blockquote {
+ interface BlockquoteProps extends Omit, 'title'> {
+ children?: React.ReactNode
+ code?: boolean
+ light?: boolean
+ toggable?: boolean
+ title?: React.ReactNode
+ kind?: StatusKind
+ withIcon?: boolean
+ icon?: React.ReactNode | IIcon
+ }
+}
+
+declare class Blockquote extends React.Component { }
+export = Blockquote
\ No newline at end of file
diff --git a/packages/ui/src/types/Breadcrumb.d.ts b/packages/ui/src/types/Breadcrumb.d.ts
new file mode 100644
index 000000000..cd31f2db0
--- /dev/null
+++ b/packages/ui/src/types/Breadcrumb.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace Breadcrumb {
+ interface BreadcrumbProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class Breadcrumb extends React.Component{ }
+export = Breadcrumb
\ No newline at end of file
diff --git a/packages/ui/src/types/BreadcrumbHome.d.ts b/packages/ui/src/types/BreadcrumbHome.d.ts
new file mode 100644
index 000000000..b5a64cf87
--- /dev/null
+++ b/packages/ui/src/types/BreadcrumbHome.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace BreadcrumbHome {
+ interface BreadcrumbHomeProps extends React.HTMLProps {
+ hometext?: React.ReactNode
+ }
+}
+
+declare class BreadcrumbHome extends React.Component{ }
+export = BreadcrumbHome
\ No newline at end of file
diff --git a/packages/ui/src/types/BreadcrumbItem.d.ts b/packages/ui/src/types/BreadcrumbItem.d.ts
new file mode 100644
index 000000000..919c86849
--- /dev/null
+++ b/packages/ui/src/types/BreadcrumbItem.d.ts
@@ -0,0 +1,12 @@
+import * as React from 'react';
+
+declare namespace BreadcrumbItem {
+ interface BreadcrumbItemProps extends React.HTMLProps {
+ href?: string
+ children?: React.ReactNode
+ disableLink?: boolean
+ }
+}
+
+declare class BreadcrumbItem extends React.Component{ }
+export = BreadcrumbItem
\ No newline at end of file
diff --git a/packages/ui/src/types/Button.d.ts b/packages/ui/src/types/Button.d.ts
new file mode 100644
index 000000000..7c4166ff4
--- /dev/null
+++ b/packages/ui/src/types/Button.d.ts
@@ -0,0 +1,19 @@
+import * as React from 'react';
+import { ButtonKind, IIcon } from './utils';
+
+declare namespace Button {
+ interface ButtonProps extends React.ButtonHTMLAttributes {
+ children?: React.ReactNode
+ small?: boolean
+ large?: boolean
+ kind?: ButtonKind
+ href?: string
+ icon?: IIcon
+ iconReverse?: boolean
+ // todo: revise iconDescription
+ iconDescription?: () => void
+ }
+}
+
+declare class Button extends React.Component{ }
+export = Button
\ No newline at end of file
diff --git a/packages/ui/src/types/Card.d.ts b/packages/ui/src/types/Card.d.ts
new file mode 100644
index 000000000..7f0d8a615
--- /dev/null
+++ b/packages/ui/src/types/Card.d.ts
@@ -0,0 +1,21 @@
+import * as React from 'react';
+import { CardKind } from './utils';
+
+declare namespace Card {
+ interface CardProps extends Omit, 'title'> {
+ image?: string
+ isExternal?: boolean
+ isLink?: boolean
+ subTitle?: React.ReactNode
+ title?: React.ReactNode
+ metadata?: string
+ children?: React.ReactNode
+ kind?: CardKind
+ url?: string
+ cardWidth?: string
+ cardHeight?: string
+ }
+}
+
+declare class Card extends React.Component{ }
+export = Card
\ No newline at end of file
diff --git a/packages/ui/src/types/Checkbox.d.ts b/packages/ui/src/types/Checkbox.d.ts
new file mode 100644
index 000000000..5b3fedb2d
--- /dev/null
+++ b/packages/ui/src/types/Checkbox.d.ts
@@ -0,0 +1,13 @@
+import * as React from 'react';
+
+declare namespace Checkbox {
+ interface CheckboxProps extends React.InputHTMLAttributes {
+ indeterminate?: boolean
+ labelText?: string
+ hideLabel?: boolean
+ wrapperClassName?: string
+ }
+}
+
+declare class Checkbox extends React.Component{ }
+export = Checkbox
\ No newline at end of file
diff --git a/packages/ui/src/types/ContentSwitcher.d.ts b/packages/ui/src/types/ContentSwitcher.d.ts
new file mode 100644
index 000000000..d435d87fb
--- /dev/null
+++ b/packages/ui/src/types/ContentSwitcher.d.ts
@@ -0,0 +1,11 @@
+import * as React from 'react';
+
+declare namespace ContentSwitcher {
+ interface ContentSwitcherProps extends React.HTMLProps {
+ selectedIndex?: number
+ children?: React.ReactNode
+ }
+}
+
+declare class ContentSwitcher extends React.Component{ }
+export = ContentSwitcher
\ No newline at end of file
diff --git a/packages/ui/src/types/ContextMenu.d.ts b/packages/ui/src/types/ContextMenu.d.ts
new file mode 100644
index 000000000..44a1f413e
--- /dev/null
+++ b/packages/ui/src/types/ContextMenu.d.ts
@@ -0,0 +1,13 @@
+import * as React from 'react';
+
+declare namespace ContextMenu {
+ interface ContextMenuProps extends Omit, 'content'> {
+ content?: React.ReactNode,
+ href?: string
+ inline?: boolean
+ children?: React.ReactNode
+ }
+}
+
+declare class ContextMenu extends React.Component{ }
+export = ContextMenu
\ No newline at end of file
diff --git a/packages/ui/src/types/ContextMenuGroup.d.ts b/packages/ui/src/types/ContextMenuGroup.d.ts
new file mode 100644
index 000000000..cbb5b72cc
--- /dev/null
+++ b/packages/ui/src/types/ContextMenuGroup.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace ContextMenuGroup {
+ interface ContextMenuGroupProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class ContextMenuGroup extends React.Component{ }
+export = ContextMenuGroup
\ No newline at end of file
diff --git a/packages/ui/src/types/ContextMenuItem.d.ts b/packages/ui/src/types/ContextMenuItem.d.ts
new file mode 100644
index 000000000..f42f606c2
--- /dev/null
+++ b/packages/ui/src/types/ContextMenuItem.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace ContextMenuItem {
+ interface ContextMenuItemProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class ContextMenuItem extends React.Component{ }
+export = ContextMenuItem
\ No newline at end of file
diff --git a/packages/ui/src/types/Credits.d.ts b/packages/ui/src/types/Credits.d.ts
new file mode 100644
index 000000000..a156ceb1f
--- /dev/null
+++ b/packages/ui/src/types/Credits.d.ts
@@ -0,0 +1,11 @@
+import * as React from 'react';
+
+declare namespace Credits {
+ interface CreditsProps extends React.HTMLProps {
+ info?: string
+ children?: React.ReactNode
+ }
+}
+
+declare class Credits extends React.Component{ }
+export = Credits
\ No newline at end of file
diff --git a/packages/ui/src/types/DateRangePickerInput.d.ts b/packages/ui/src/types/DateRangePickerInput.d.ts
new file mode 100644
index 000000000..15cdea920
--- /dev/null
+++ b/packages/ui/src/types/DateRangePickerInput.d.ts
@@ -0,0 +1,12 @@
+import * as React from 'react';
+import { SingleDatePickerInputProps } from './SingleDatePickerInput';
+
+declare namespace DateRangePickerInput {
+ interface DateRangePickerInputProps extends SingleDatePickerInputProps {
+ startDatePlaceholderText?: string
+ endDatePlaceholderText?: string
+ }
+}
+
+declare class DateRangePickerInput extends React.Component{ }
+export = DateRangePickerInput
\ No newline at end of file
diff --git a/packages/ui/src/types/Empty.d.ts b/packages/ui/src/types/Empty.d.ts
new file mode 100644
index 000000000..ad1a4a286
--- /dev/null
+++ b/packages/ui/src/types/Empty.d.ts
@@ -0,0 +1,15 @@
+import * as React from 'react';
+import { IIcon } from './utils';
+
+declare namespace Empty {
+ interface EmptyProps extends Omit, 'title'> {
+ title: React.ReactNode
+ children?: React.ReactNode
+ kind?: 'undefined' | 'large'
+ icon?: IIcon
+ button?: React.ReactNode
+ }
+}
+
+declare class Empty extends React.Component{ }
+export = Empty
\ No newline at end of file
diff --git a/packages/ui/src/types/Footer.d.ts b/packages/ui/src/types/Footer.d.ts
new file mode 100644
index 000000000..e4cd82aed
--- /dev/null
+++ b/packages/ui/src/types/Footer.d.ts
@@ -0,0 +1,21 @@
+import * as React from 'react';
+import { ScreenSize } from './utils';
+
+declare namespace Footer {
+ interface FooterProps extends React.HTMLProps {
+ external?: boolean
+ children?: React.ReactNode
+ metaContent?: React.ReactNode
+ metaLinks?: React.ReactNode
+ logo?: string | React.ReactNode
+ logoExtended?: string | React.ReactNode
+ pageWidth?: ScreenSize
+ sdgLogo?: React.ReactNode
+ subTitle?: string | React.ReactNode
+ socialIcons?: React.ReactNode
+ productName?: string | React.ReactNode
+ }
+}
+
+declare class Footer extends React.Component{ }
+export = Footer
\ No newline at end of file
diff --git a/packages/ui/src/types/Form.d.ts b/packages/ui/src/types/Form.d.ts
new file mode 100644
index 000000000..3b9877d78
--- /dev/null
+++ b/packages/ui/src/types/Form.d.ts
@@ -0,0 +1,11 @@
+import * as React from 'react';
+
+declare namespace Form {
+ interface FormProps extends React.FormHTMLAttributes{ }
+export = Form
\ No newline at end of file
diff --git a/packages/ui/src/types/FormGroup.d.ts b/packages/ui/src/types/FormGroup.d.ts
new file mode 100644
index 000000000..ceb69fb8d
--- /dev/null
+++ b/packages/ui/src/types/FormGroup.d.ts
@@ -0,0 +1,18 @@
+import * as React from 'react';
+import * as HookForm from 'react-hook-form'
+
+declare namespace FormGroup {
+ interface FormGroupProps extends React.HTMLProps {
+ legendText?: string
+ children?: React.ReactNode
+ breakpoint?: 'none' | 'sm' | 'md' | 'lg'
+ invalid?: boolean | HookForm.FieldError
+ message?: boolean
+ messageText?: string
+ align?: 'vertical' | 'horizontal'
+ inputSpacing?: 'none' | 'md' | 'lg'
+ }
+}
+
+declare class FormGroup extends React.Component{ }
+export = FormGroup
\ No newline at end of file
diff --git a/packages/ui/src/types/FormHint.d.ts b/packages/ui/src/types/FormHint.d.ts
new file mode 100644
index 000000000..8653a772d
--- /dev/null
+++ b/packages/ui/src/types/FormHint.d.ts
@@ -0,0 +1,12 @@
+import * as React from 'react';
+import { IIcon } from './utils';
+
+declare namespace FormHint {
+ interface FormHintProps extends React.HTMLProps {
+ children?: React.ReactNode
+ icon?: IIcon
+ }
+}
+
+declare class FormHint extends React.Component{ }
+export = FormHint
\ No newline at end of file
diff --git a/packages/ui/src/types/FormLabel.d.ts b/packages/ui/src/types/FormLabel.d.ts
new file mode 100644
index 000000000..33b3a1e4a
--- /dev/null
+++ b/packages/ui/src/types/FormLabel.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace FormLabel {
+ interface FormLabelProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class FormLabel extends React.Component{ }
+export = FormLabel
\ No newline at end of file
diff --git a/packages/ui/src/types/FormWizard.d.ts b/packages/ui/src/types/FormWizard.d.ts
new file mode 100644
index 000000000..cce131b17
--- /dev/null
+++ b/packages/ui/src/types/FormWizard.d.ts
@@ -0,0 +1,14 @@
+import * as React from 'react';
+
+declare namespace FormWizard {
+ interface FormWizardProps extends React.HTMLProps {
+ children: React.ReactNode
+ sidebar: React.ReactNode
+ stickySidebar?: boolean
+ formHeader?: React.ReactNode
+ formControls?: React.ReactNode
+ }
+}
+
+declare class FormWizard extends React.Component{ }
+export = FormWizard
\ No newline at end of file
diff --git a/packages/ui/src/types/Hero.d.ts b/packages/ui/src/types/Hero.d.ts
new file mode 100644
index 000000000..02ea379fb
--- /dev/null
+++ b/packages/ui/src/types/Hero.d.ts
@@ -0,0 +1,20 @@
+import * as React from 'react';
+import { HeroKind } from './utils';
+
+declare namespace Hero {
+ interface HeroProps extends Omit, 'title'> {
+ href?: string
+ image?: string
+ isExternal?: boolean
+ isLink?: boolean
+ subTitle?: React.ReactNode
+ title?: React.ReactNode
+ metadata?: string
+ more?: React.ReactNode
+ kind?: HeroKind
+ url?: string
+ }
+}
+
+declare class Hero extends React.Component{ }
+export = Hero
\ No newline at end of file
diff --git a/packages/ui/src/types/Icon.d.ts b/packages/ui/src/types/Icon.d.ts
new file mode 100644
index 000000000..2d2c8c177
--- /dev/null
+++ b/packages/ui/src/types/Icon.d.ts
@@ -0,0 +1,20 @@
+import * as React from 'react';
+import { IIcon } from './utils';
+
+declare namespace Icon {
+ interface IconProps extends React.HTMLProps {
+ description: string
+ fill?: string
+ fillRule?: string
+ height?: string
+ icon?: IIcon | React.ReactNode
+ name?: string
+ role?: string
+ viewBox?: string
+ width?: string
+ iconRef?: () => void
+ }
+}
+
+declare class Icon extends React.Component{ }
+export = Icon
\ No newline at end of file
diff --git a/packages/ui/src/types/InfoBar.d.ts b/packages/ui/src/types/InfoBar.d.ts
new file mode 100644
index 000000000..c23f78946
--- /dev/null
+++ b/packages/ui/src/types/InfoBar.d.ts
@@ -0,0 +1,13 @@
+import * as React from 'react';
+import { ScreenSize } from './utils';
+
+declare namespace InfoBar {
+ interface InfoBarProps extends React.HTMLProps {
+ children: React.ReactNode
+ pageWidth?: ScreenSize
+ wrapperClassName?: string
+ }
+}
+
+declare class InfoBar extends React.Component{ }
+export = InfoBar
\ No newline at end of file
diff --git a/packages/ui/src/types/InlineLoading.d.ts b/packages/ui/src/types/InlineLoading.d.ts
new file mode 100644
index 000000000..b15eab0a9
--- /dev/null
+++ b/packages/ui/src/types/InlineLoading.d.ts
@@ -0,0 +1,13 @@
+import * as React from 'react';
+
+declare namespace InlineLoading {
+ interface InlineLoadingProps extends React.HTMLProps {
+ success?: boolean
+ description?: string
+ successDelay?: number
+ onSuccess?: () => void
+ }
+}
+
+declare class InlineLoading extends React.Component{ }
+export = InlineLoading
\ No newline at end of file
diff --git a/packages/ui/src/types/Input.d.ts b/packages/ui/src/types/Input.d.ts
new file mode 100644
index 000000000..010b22781
--- /dev/null
+++ b/packages/ui/src/types/Input.d.ts
@@ -0,0 +1,21 @@
+import * as React from 'react';
+import * as HookForm from 'react-hook-form'
+
+declare namespace Input {
+ interface InputProps extends React.InputHTMLAttributes {
+ helperText?: string
+ labelText?: string
+ defaultValue?: string | number
+ formItemClassName?: string
+ inputWrapperClassName?: string
+ hideLabel?: boolean
+ invalid?: boolean | HookForm.FieldError
+ invalidText?: string | React.ReactNode
+ additional?: React.ReactNode
+ children?: React.ReactNode
+ light?: boolean
+ }
+}
+
+declare class Input extends React.Component{ }
+export = Input
\ No newline at end of file
diff --git a/packages/ui/src/types/InputGroup.d.ts b/packages/ui/src/types/InputGroup.d.ts
new file mode 100644
index 000000000..e3a9643d2
--- /dev/null
+++ b/packages/ui/src/types/InputGroup.d.ts
@@ -0,0 +1,16 @@
+import * as React from 'react';
+
+declare namespace InputGroup {
+ interface InputGroupProps extends React.HTMLProps {
+ children?: React.ReactNode
+ controlled?: boolean
+ defaultSelected?: string | number
+ valueSelected?: boolean
+ hideLabel?: boolean
+ helperText?: React.ReactNode
+ labelText?: React.ReactNode
+ }
+}
+
+declare class InputGroup extends React.Component{ }
+export = InputGroup
\ No newline at end of file
diff --git a/packages/ui/src/types/Item.d.ts b/packages/ui/src/types/Item.d.ts
new file mode 100644
index 000000000..3969cee8b
--- /dev/null
+++ b/packages/ui/src/types/Item.d.ts
@@ -0,0 +1,20 @@
+import * as React from 'react';
+import { IIcon } from './utils';
+
+declare namespace Item {
+ interface ItemProps extends Omit, 'title'> {
+ title?: React.ReactNode
+ children?: React.ReactNode
+ icon?: React.ReactNode | IIcon
+ button?: React.ReactNode
+ kind?: 'undefined' | 'large'
+ wrapper?: 'undefined' | 'sidebar' | 'repeater'
+ showAdditionalIcon?: boolean
+ subContent?: string
+ additional?: string
+ hint?: React.ReactNode
+ }
+}
+
+declare class Item extends React.Component{ }
+export = Item
\ No newline at end of file
diff --git a/packages/ui/src/types/Link.d.ts b/packages/ui/src/types/Link.d.ts
new file mode 100644
index 000000000..63488c3a2
--- /dev/null
+++ b/packages/ui/src/types/Link.d.ts
@@ -0,0 +1,11 @@
+import * as React from 'react';
+
+declare namespace Link {
+ interface LinkProps extends React.HTMLProps {
+ href?: string
+ inline?: boolean
+ }
+}
+
+declare class Link extends React.Component{ }
+export = Link
\ No newline at end of file
diff --git a/packages/ui/src/types/List/List.d.ts b/packages/ui/src/types/List/List.d.ts
new file mode 100644
index 000000000..ef3985c38
--- /dev/null
+++ b/packages/ui/src/types/List/List.d.ts
@@ -0,0 +1,13 @@
+import * as React from 'react';
+
+declare namespace List {
+ interface ListProps extends React.HTMLProps {
+ colon?: boolean
+ kind?: 'unstyled' | 'simple-inline' | 'details' | 'unordered' | 'ordered' | 'tooltip'
+ small?: boolean
+ children?: React.ReactNode
+ }
+}
+
+declare class List extends React.Component{ }
+export = List
\ No newline at end of file
diff --git a/packages/ui/src/types/List/ListItem.d.ts b/packages/ui/src/types/List/ListItem.d.ts
new file mode 100644
index 000000000..8125225c4
--- /dev/null
+++ b/packages/ui/src/types/List/ListItem.d.ts
@@ -0,0 +1,11 @@
+import * as React from 'react';
+
+declare namespace ListItem {
+ interface ListItemProps extends React.HTMLProps {
+ kind?: 'checkmark' | 'cross'
+ small?: boolean
+ }
+}
+
+declare class ListItem extends React.Component{ }
+export = ListItem
\ No newline at end of file
diff --git a/packages/ui/src/types/List/index.d.ts b/packages/ui/src/types/List/index.d.ts
new file mode 100644
index 000000000..b972c737e
--- /dev/null
+++ b/packages/ui/src/types/List/index.d.ts
@@ -0,0 +1,11 @@
+import ListItem = require('./ListItem')
+import { ListItemProps } from './ListItem'
+import List = require('./List')
+import { ListProps } from './List'
+
+export {
+ ListItem,
+ ListItemProps,
+ List,
+ ListProps
+}
\ No newline at end of file
diff --git a/packages/ui/src/types/Loading.d.ts b/packages/ui/src/types/Loading.d.ts
new file mode 100644
index 000000000..15d5d0848
--- /dev/null
+++ b/packages/ui/src/types/Loading.d.ts
@@ -0,0 +1,12 @@
+import * as React from 'react';
+
+declare namespace Loading {
+ interface LoadingProps extends React.HTMLProps {
+ active?: boolean
+ withOverlay?: boolean
+ small?: boolean
+ }
+}
+
+declare class Loading extends React.Component{ }
+export = Loading
\ No newline at end of file
diff --git a/packages/ui/src/types/Modal/Modal.d.ts b/packages/ui/src/types/Modal/Modal.d.ts
new file mode 100644
index 000000000..061bcb232
--- /dev/null
+++ b/packages/ui/src/types/Modal/Modal.d.ts
@@ -0,0 +1,33 @@
+import * as React from 'react';
+
+declare namespace Modal {
+ interface ModalProps extends React.HTMLProps {
+ modalLabel?: React.ReactNode
+ modalHeading?: string
+ modalText?: string
+ lazyLoad?: boolean
+ passiveModal?: boolean
+ children?: React.ReactNode
+ modalAriaLabel?: string
+ secondaryButtonText?: string
+ secondaryButtonDisabled?: boolean
+ onSecondarySubmit?: boolean
+ primaryButtonText?: string
+ primaryButtonDisabled?: boolean
+ open?: boolean
+ danger?: boolean
+ shouldSubmitOnEnter?: boolean
+ selectorsFloatingMenus?: string[]
+ selectorPrimaryFocus?: boolean | string
+ type?: 'info' | 'warning' | 'danger'
+ inPortal?: boolean
+ wide?: boolean
+ modalFooter?: () => {}
+ onRequestClose?: () => void
+ onRequestSubmit?: () => void
+ iconDescription?: string
+ }
+}
+
+declare class Modal extends React.Component{ }
+export = Modal
\ No newline at end of file
diff --git a/packages/ui/src/types/Modal/ModalWrapper.d.ts b/packages/ui/src/types/Modal/ModalWrapper.d.ts
new file mode 100644
index 000000000..ef07163f9
--- /dev/null
+++ b/packages/ui/src/types/Modal/ModalWrapper.d.ts
@@ -0,0 +1,28 @@
+import * as React from 'react';
+import { ButtonKind } from '../utils';
+
+declare namespace ModalWrapper {
+ interface ModalWrapperProps extends React.HTMLProps {
+ status?: string
+ children?: React.ReactNode
+ customButton?: React.ReactElement
+ buttonTriggerText?: React.ReactNode
+ buttonTriggerClassName?: string
+ modalLabel?: string
+ modalHeading?: string
+ modalText?: string
+ passiveModal?: boolean
+ withHeader?: boolean
+ modalBeforeContent?: boolean
+ primaryButtonText?: string
+ secondaryButtonText?: string
+ handleOpen?: () => void
+ handleSubmit?: () => void
+ handleClose?: () => void
+ triggerButtonKind?: ButtonKind
+ shouldCloseAfterSubmit?: boolean
+ }
+}
+
+declare class ModalWrapper extends React.Component{ }
+export = ModalWrapper
\ No newline at end of file
diff --git a/packages/ui/src/types/Modal/index.d.ts b/packages/ui/src/types/Modal/index.d.ts
new file mode 100644
index 000000000..f80961e52
--- /dev/null
+++ b/packages/ui/src/types/Modal/index.d.ts
@@ -0,0 +1,11 @@
+import Modal = require('./Modal')
+import { ModalProps } from './Modal'
+import ModalWrapper = require('./ModalWrapper')
+import { ModalWrapperProps } from './ModalWrapper'
+
+export {
+ Modal,
+ ModalProps,
+ ModalWrapper,
+ ModalWrapperProps
+}
\ No newline at end of file
diff --git a/packages/ui/src/types/Module/Module.d.ts b/packages/ui/src/types/Module/Module.d.ts
new file mode 100644
index 000000000..b1ca52067
--- /dev/null
+++ b/packages/ui/src/types/Module/Module.d.ts
@@ -0,0 +1,15 @@
+import * as React from 'react';
+
+declare namespace Module {
+ interface ModuleProps extends React.HTMLProps {
+ children?: React.ReactNode
+ noMargin?: boolean
+ fullHeight?: boolean
+ light?: boolean
+ dark?: boolean
+ withHover?: boolean
+ }
+}
+
+declare class Module extends React.Component{ }
+export = Module
\ No newline at end of file
diff --git a/packages/ui/src/types/Module/ModuleBody.d.ts b/packages/ui/src/types/Module/ModuleBody.d.ts
new file mode 100644
index 000000000..c091e5304
--- /dev/null
+++ b/packages/ui/src/types/Module/ModuleBody.d.ts
@@ -0,0 +1,12 @@
+import * as React from 'react';
+
+declare namespace ModuleBody {
+ interface ModuleBodyProps extends React.HTMLProps {
+ children?: React.ReactNode
+ centered?: boolean
+ noPadding?: boolean
+ }
+}
+
+declare class ModuleBody extends React.Component{ }
+export = ModuleBody
\ No newline at end of file
diff --git a/packages/ui/src/types/Module/ModuleFooter.d.ts b/packages/ui/src/types/Module/ModuleFooter.d.ts
new file mode 100644
index 000000000..51b60d685
--- /dev/null
+++ b/packages/ui/src/types/Module/ModuleFooter.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace ModuleFooter {
+ interface ModuleFooterProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class ModuleFooter extends React.Component{ }
+export = ModuleFooter
\ No newline at end of file
diff --git a/packages/ui/src/types/Module/ModuleHeader.d.ts b/packages/ui/src/types/Module/ModuleHeader.d.ts
new file mode 100644
index 000000000..0c60a5094
--- /dev/null
+++ b/packages/ui/src/types/Module/ModuleHeader.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace ModuleHeader {
+ interface ModuleHeaderProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class ModuleHeader extends React.Component{ }
+export = ModuleHeader
\ No newline at end of file
diff --git a/packages/ui/src/types/Module/index.d.ts b/packages/ui/src/types/Module/index.d.ts
new file mode 100644
index 000000000..491954444
--- /dev/null
+++ b/packages/ui/src/types/Module/index.d.ts
@@ -0,0 +1,19 @@
+import Module = require('./Module')
+import { ModuleProps } from './Module'
+import ModuleBody = require('./ModuleBody')
+import { ModuleBodyProps } from './ModuleBody'
+import ModuleFooter = require('./ModuleFooter')
+import { ModuleFooterProps } from './ModuleFooter'
+import ModuleHeader = require('./ModuleHeader')
+import { ModuleHeaderProps } from './ModuleHeader'
+
+export {
+ Module,
+ ModuleProps,
+ ModuleHeader,
+ ModuleHeaderProps,
+ ModuleBody,
+ ModuleBodyProps,
+ ModuleFooter,
+ ModuleFooterProps
+}
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/MainNavigation.d.ts b/packages/ui/src/types/Navigation/MainNavigation.d.ts
new file mode 100644
index 000000000..179161138
--- /dev/null
+++ b/packages/ui/src/types/Navigation/MainNavigation.d.ts
@@ -0,0 +1,15 @@
+import * as React from 'react';
+import { ScreenSize } from '../utils';
+
+declare namespace MainNavigation {
+ interface MainNavigationProps extends React.HTMLProps {
+ children: React.ReactNode
+ logo?: string | React.ReactNode
+ pageWidth?: ScreenSize
+ mobilePageWidth?: ScreenSize
+ wrapperClassName?: string
+ }
+}
+
+declare class MainNavigation extends React.Component{ }
+export = MainNavigation
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/MainNavigationItem.d.ts b/packages/ui/src/types/Navigation/MainNavigationItem.d.ts
new file mode 100644
index 000000000..c8ddd8314
--- /dev/null
+++ b/packages/ui/src/types/Navigation/MainNavigationItem.d.ts
@@ -0,0 +1,15 @@
+import * as React from 'react';
+
+declare namespace MainNavigationItem {
+ interface MainNavigationItemProps extends React.HTMLProps {
+ children: React.ReactNode
+ subNavigation?: React.ReactNode
+ activeMenuItem?: number | string
+ menuItem?: number | string
+ subNavWideAsContent?: boolean
+ onChangeSub: () => void
+ }
+}
+
+declare class MainNavigationItem extends React.Component{ }
+export = MainNavigationItem
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/SecondaryNavigation.d.ts b/packages/ui/src/types/Navigation/SecondaryNavigation.d.ts
new file mode 100644
index 000000000..d8e39eb8e
--- /dev/null
+++ b/packages/ui/src/types/Navigation/SecondaryNavigation.d.ts
@@ -0,0 +1,13 @@
+import * as React from 'react'
+import { ScreenSize } from '../utils'
+
+declare namespace SecondaryNavigation {
+ interface SecondaryNavigationProps extends React.HTMLProps {
+ children: React.ReactNode
+ pageWidth?: ScreenSize
+ wrapperClassName?: string
+ }
+}
+
+declare class SecondaryNavigation extends React.Component { }
+export = SecondaryNavigation
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/StepNavigation.d.ts b/packages/ui/src/types/Navigation/StepNavigation.d.ts
new file mode 100644
index 000000000..71098a2dc
--- /dev/null
+++ b/packages/ui/src/types/Navigation/StepNavigation.d.ts
@@ -0,0 +1,15 @@
+import * as React from 'react';
+
+declare namespace StepNavigation {
+ interface StepNavigationProps extends React.HTMLProps {
+ children?: React.ReactNode
+ small?: boolean
+ vertical?: boolean
+ role: string
+ onSelectionChange?: React.FormEventHandler
+ selectedPage?: number
+ }
+}
+
+declare class StepNavigation extends React.Component{ }
+export = StepNavigation
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/StepNavigationItem.d.ts b/packages/ui/src/types/Navigation/StepNavigationItem.d.ts
new file mode 100644
index 000000000..4ce10ba51
--- /dev/null
+++ b/packages/ui/src/types/Navigation/StepNavigationItem.d.ts
@@ -0,0 +1,15 @@
+import * as React from 'react';
+
+declare namespace StepNavigationItem {
+ interface StepNavigationItemProps extends React.HTMLProps {
+ helperText?: React.ReactNode
+ index?: number
+ label?: string
+ role: string
+ selectedPage: number
+ renderAnchor: () => {}
+ }
+}
+
+declare class StepNavigationItem extends React.Component{ }
+export = StepNavigationItem
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/SubNavigation.d.ts b/packages/ui/src/types/Navigation/SubNavigation.d.ts
new file mode 100644
index 000000000..647ee2c1d
--- /dev/null
+++ b/packages/ui/src/types/Navigation/SubNavigation.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace SubNavigation {
+ interface SubNavigationProps extends React.HTMLProps {
+ children: React.ReactNode
+ }
+}
+
+declare class SubNavigation extends React.Component{ }
+export = SubNavigation
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/SubNavigationContent.d.ts b/packages/ui/src/types/Navigation/SubNavigationContent.d.ts
new file mode 100644
index 000000000..8e4f63bc5
--- /dev/null
+++ b/packages/ui/src/types/Navigation/SubNavigationContent.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace SubNavigationContent {
+ interface SubNavigationContentProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class SubNavigationContent extends React.Component{ }
+export = SubNavigationContent
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/SubNavigationFilter.d.ts b/packages/ui/src/types/Navigation/SubNavigationFilter.d.ts
new file mode 100644
index 000000000..b96cc7e61
--- /dev/null
+++ b/packages/ui/src/types/Navigation/SubNavigationFilter.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace SubNavigationFilter {
+ interface SubNavigationFilterProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class SubNavigationFilter extends React.Component{ }
+export = SubNavigationFilter
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/SubNavigationGroup.d.ts b/packages/ui/src/types/Navigation/SubNavigationGroup.d.ts
new file mode 100644
index 000000000..4018a0e16
--- /dev/null
+++ b/packages/ui/src/types/Navigation/SubNavigationGroup.d.ts
@@ -0,0 +1,12 @@
+import * as React from 'react';
+
+declare namespace SubNavigationGroup {
+ interface SubNavigationGroupProps extends Omit, 'title'> {
+ columns?: number
+ title?: React.ReactNode
+ image?: string
+ }
+}
+
+declare class SubNavigationGroup extends React.Component{ }
+export = SubNavigationGroup
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/SubNavigationHeader.d.ts b/packages/ui/src/types/Navigation/SubNavigationHeader.d.ts
new file mode 100644
index 000000000..966d821d2
--- /dev/null
+++ b/packages/ui/src/types/Navigation/SubNavigationHeader.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace SubNavigationHeader {
+ interface SubNavigationHeaderProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class SubNavigationHeader extends React.Component{ }
+export = SubNavigationHeader
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/SubNavigationItem.d.ts b/packages/ui/src/types/Navigation/SubNavigationItem.d.ts
new file mode 100644
index 000000000..f8820d463
--- /dev/null
+++ b/packages/ui/src/types/Navigation/SubNavigationItem.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace SubNavigationItem {
+ interface SubNavigationItemProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class SubNavigationItem extends React.Component{ }
+export = SubNavigationItem
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/SubNavigationLink.d.ts b/packages/ui/src/types/Navigation/SubNavigationLink.d.ts
new file mode 100644
index 000000000..3d6212f6f
--- /dev/null
+++ b/packages/ui/src/types/Navigation/SubNavigationLink.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace SubNavigationLink {
+ interface SubNavigationLinkProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class SubNavigationLink extends React.Component{ }
+export = SubNavigationLink
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/SubNavigationList.d.ts b/packages/ui/src/types/Navigation/SubNavigationList.d.ts
new file mode 100644
index 000000000..e22b93f2c
--- /dev/null
+++ b/packages/ui/src/types/Navigation/SubNavigationList.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace SubNavigationList {
+ interface SubNavigationListProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class SubNavigationList extends React.Component{ }
+export = SubNavigationList
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/SubNavigationTitle.d.ts b/packages/ui/src/types/Navigation/SubNavigationTitle.d.ts
new file mode 100644
index 000000000..28a10ec96
--- /dev/null
+++ b/packages/ui/src/types/Navigation/SubNavigationTitle.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace SubNavigationTitle {
+ interface SubNavigationTitleProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class SubNavigationTitle extends React.Component{ }
+export = SubNavigationTitle
\ No newline at end of file
diff --git a/packages/ui/src/types/Navigation/index.d.ts b/packages/ui/src/types/Navigation/index.d.ts
new file mode 100644
index 000000000..ce62fe1f6
--- /dev/null
+++ b/packages/ui/src/types/Navigation/index.d.ts
@@ -0,0 +1,59 @@
+import MainNavigation = require('./MainNavigation')
+import { MainNavigationProps } from './MainNavigation'
+import MainNavigationItem = require('./MainNavigationItem')
+import { MainNavigationItemProps } from './MainNavigationItem'
+import SecondaryNavigation = require('./SecondaryNavigation')
+import { SecondaryNavigationProps } from './SecondaryNavigation'
+import StepNavigation = require('./StepNavigation')
+import { StepNavigationProps } from './StepNavigation'
+import StepNavigationItem = require('./StepNavigationItem')
+import { StepNavigationItemProps } from './StepNavigationItem'
+import SubNavigation = require('./SubNavigation')
+import { SubNavigationProps } from './SubNavigation'
+import SubNavigationHeader = require('./SubNavigationHeader')
+import { SubNavigationHeaderProps } from './SubNavigationHeader'
+import SubNavigationTitle = require('./SubNavigationTitle')
+import { SubNavigationTitleProps } from './SubNavigationTitle'
+import SubNavigationLink = require('./SubNavigationLink')
+import { SubNavigationLinkProps } from './SubNavigationLink'
+import SubNavigationFilter = require('./SubNavigationFilter')
+import { SubNavigationFilterProps } from './SubNavigationFilter'
+import SubNavigationContent = require('./SubNavigationContent')
+import { SubNavigationContentProps } from './SubNavigationContent'
+import SubNavigationList = require('./SubNavigationList')
+import { SubNavigationListProps } from './SubNavigationList'
+import SubNavigationGroup = require('./SubNavigationGroup')
+import { SubNavigationGroupProps } from './SubNavigationGroup'
+import SubNavigationItem = require('./SubNavigationItem')
+import { SubNavigationItemProps } from './SubNavigationItem'
+
+export {
+ MainNavigation,
+ MainNavigationProps,
+ MainNavigationItem,
+ MainNavigationItemProps,
+ SecondaryNavigation,
+ SecondaryNavigationProps,
+ StepNavigation,
+ StepNavigationProps,
+ StepNavigationItem,
+ StepNavigationItemProps,
+ SubNavigation,
+ SubNavigationProps,
+ SubNavigationHeader,
+ SubNavigationHeaderProps,
+ SubNavigationTitle,
+ SubNavigationTitleProps,
+ SubNavigationLink,
+ SubNavigationLinkProps,
+ SubNavigationFilter,
+ SubNavigationFilterProps,
+ SubNavigationContent,
+ SubNavigationContentProps,
+ SubNavigationList,
+ SubNavigationListProps,
+ SubNavigationGroup,
+ SubNavigationGroupProps,
+ SubNavigationItem,
+ SubNavigationItemProps
+}
\ No newline at end of file
diff --git a/packages/ui/src/types/Notification/InlineNotification.d.ts b/packages/ui/src/types/Notification/InlineNotification.d.ts
new file mode 100644
index 000000000..d03bf2cb1
--- /dev/null
+++ b/packages/ui/src/types/Notification/InlineNotification.d.ts
@@ -0,0 +1,22 @@
+import * as React from 'react';
+import { NotificationKind, NotificationType } from '../utils';
+
+declare namespace InlineNotification {
+ interface InlineNotificationProps extends React.HTMLProps {
+ actions?: React.ReactNode
+ children?: React.ReactNode
+ hideCloseButton?: boolean
+ iconDescription?: string
+ kind: NotificationKind
+ lowContrast?: boolean
+ notificationType?: NotificationType
+ onCloseButtonClick?: () => void
+ role: string
+ statusIconDescription?: string
+ subtitle?: React.ReactNode
+ title: string
+ }
+}
+
+declare class InlineNotification extends React.Component{ }
+export = InlineNotification
\ No newline at end of file
diff --git a/packages/ui/src/types/Notification/Notification.d.ts b/packages/ui/src/types/Notification/Notification.d.ts
new file mode 100644
index 000000000..2afbcd935
--- /dev/null
+++ b/packages/ui/src/types/Notification/Notification.d.ts
@@ -0,0 +1,15 @@
+import * as React from 'react';
+import { IIcon } from '../utils';
+
+declare namespace Notification {
+ interface NotificationProps extends React.HTMLProps {
+ ariaLabel?: string
+ iconDescription?: string
+ notificationType?: 'toast' | 'inline'
+ renderIcon?: () => {} | IIcon
+ children?: React.ReactNode
+ }
+}
+
+declare class Notification extends React.Component{ }
+export = Notification
\ No newline at end of file
diff --git a/packages/ui/src/types/Notification/NotificationActionButton.d.ts b/packages/ui/src/types/Notification/NotificationActionButton.d.ts
new file mode 100644
index 000000000..d45fb630e
--- /dev/null
+++ b/packages/ui/src/types/Notification/NotificationActionButton.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace NotificationActionButton {
+ interface NotificationActionButtonProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class NotificationActionButton extends React.Component{ }
+export = NotificationActionButton
\ No newline at end of file
diff --git a/packages/ui/src/types/Notification/NotificationButton.d.ts b/packages/ui/src/types/Notification/NotificationButton.d.ts
new file mode 100644
index 000000000..42c200bed
--- /dev/null
+++ b/packages/ui/src/types/Notification/NotificationButton.d.ts
@@ -0,0 +1,15 @@
+import * as React from 'react';
+import { IIcon, NotificationType } from '../utils';
+
+declare namespace NotificationButton {
+ interface NotificationButtonProps extends React.HTMLProps {
+ ariaLabel?: string
+ iconDescription?: string
+ notificationType?: NotificationType
+ renderIcon?: () => {} | IIcon
+ children?: React.ReactNode
+ }
+}
+
+declare class NotificationButton extends React.Component{ }
+export = NotificationButton
\ No newline at end of file
diff --git a/packages/ui/src/types/Notification/NotificationIcon.d.ts b/packages/ui/src/types/Notification/NotificationIcon.d.ts
new file mode 100644
index 000000000..cfc80fd48
--- /dev/null
+++ b/packages/ui/src/types/Notification/NotificationIcon.d.ts
@@ -0,0 +1,14 @@
+import * as React from 'react';
+import { NotificationKind, NotificationType } from '../utils';
+
+declare namespace NotificationIcon {
+ interface NotificationIconProps extends React.HTMLProps {
+ iconDescription: string
+ kind: NotificationKind
+ notificationType?: NotificationType
+ subtitle?: React.ReactNode
+ }
+}
+
+declare class NotificationIcon extends React.Component{ }
+export = NotificationIcon
\ No newline at end of file
diff --git a/packages/ui/src/types/Notification/NotificationTextDetails.d.ts b/packages/ui/src/types/Notification/NotificationTextDetails.d.ts
new file mode 100644
index 000000000..77095340c
--- /dev/null
+++ b/packages/ui/src/types/Notification/NotificationTextDetails.d.ts
@@ -0,0 +1,14 @@
+import * as React from 'react';
+import { NotificationType } from '../utils';
+
+declare namespace NotificationTextDetails {
+ interface NotificationTextDetailsProps extends React.HTMLProps {
+ caption?: React.ReactNode
+ children?: React.ReactNode
+ notificationType?: NotificationType
+ subtitle?: React.ReactNode
+ }
+}
+
+declare class NotificationTextDetails extends React.Component{ }
+export = NotificationTextDetails
\ No newline at end of file
diff --git a/packages/ui/src/types/Notification/ToastNotification.d.ts b/packages/ui/src/types/Notification/ToastNotification.d.ts
new file mode 100644
index 000000000..bf6265e36
--- /dev/null
+++ b/packages/ui/src/types/Notification/ToastNotification.d.ts
@@ -0,0 +1,23 @@
+import * as React from 'react';
+import { NotificationKind, NotificationType } from '../utils';
+
+declare namespace ToastNotification {
+ interface ToastNotificationProps extends React.HTMLProps {
+ caption?: React.ReactNode
+ children?: React.ReactNode
+ hideCloseButton?: boolean
+ iconDescription?: string
+ kind: NotificationKind
+ lowContrast?: boolean
+ notificationType?: NotificationType
+ onCloseButtonClick?: () => void
+ role: string
+ statusIconDescription?: string
+ subtitle?: React.ReactNode
+ timeout?: number
+ title: string
+ }
+}
+
+declare class ToastNotification extends React.Component{ }
+export = ToastNotification
\ No newline at end of file
diff --git a/packages/ui/src/types/Notification/index.d.ts b/packages/ui/src/types/Notification/index.d.ts
new file mode 100644
index 000000000..8969d1677
--- /dev/null
+++ b/packages/ui/src/types/Notification/index.d.ts
@@ -0,0 +1,31 @@
+import Notification = require('./Notification')
+import { NotificationProps } from './Notification'
+import NotificationActionButton = require('./NotificationActionButton')
+import { NotificationActionButtonProps } from './NotificationActionButton'
+import NotificationButton = require('./NotificationButton')
+import { NotificationButtonProps } from './NotificationButton'
+import NotificationTextDetails = require('./NotificationTextDetails')
+import { NotificationTextDetailsProps } from './NotificationTextDetails'
+import NotificationIcon = require('./NotificationIcon')
+import { NotificationIconProps } from './NotificationIcon'
+import ToastNotification = require('./ToastNotification')
+import { ToastNotificationProps } from './ToastNotification'
+import InlineNotification = require('./InlineNotification')
+import { InlineNotificationProps } from './InlineNotification'
+
+export {
+ NotificationActionButton,
+ NotificationActionButtonProps,
+ Notification,
+ NotificationProps,
+ NotificationButton,
+ NotificationButtonProps,
+ NotificationTextDetails,
+ NotificationTextDetailsProps,
+ NotificationIcon,
+ NotificationIconProps,
+ ToastNotification,
+ ToastNotificationProps,
+ InlineNotification,
+ InlineNotificationProps
+}
\ No newline at end of file
diff --git a/packages/ui/src/types/NumberInput.d.ts b/packages/ui/src/types/NumberInput.d.ts
new file mode 100644
index 000000000..b6bd2922d
--- /dev/null
+++ b/packages/ui/src/types/NumberInput.d.ts
@@ -0,0 +1,14 @@
+import * as React from 'react';
+import { InputProps } from './Input'
+
+declare namespace NumberInput {
+ interface NumberInputProps extends InputProps {
+ max?: number
+ min?: number
+ step?: number
+ allowEmpty?: boolean
+ }
+}
+
+declare class NumberInput extends React.Component{ }
+export = NumberInput
\ No newline at end of file
diff --git a/packages/ui/src/types/Pagination.d.ts b/packages/ui/src/types/Pagination.d.ts
new file mode 100644
index 000000000..c473c6efd
--- /dev/null
+++ b/packages/ui/src/types/Pagination.d.ts
@@ -0,0 +1,28 @@
+import * as React from 'react';
+
+declare namespace Pagination {
+ interface PaginationProps extends Omit, 'id'> {
+ pageSizes: number[]
+ backwardText?: string
+ forwardText?: string
+ id?: string | number
+ itemsPerPageText?: string
+ itemsPerPageFollowsText?: string
+ pageNumberText?: string
+ pageSizesDisabled?: boolean
+ totalItems?: number
+ page?: number
+ pageSize?: number
+ pagesUnknown?: boolean
+ isLastPage?: boolean
+ pageInputDisabled?: boolean
+
+ itemRangeText?: (min: number, max: number, total: number) => string
+ itemText?: (min: number, max: number) => string
+ pageRangeText?: (current: number, total: number) => string
+ pageText?: (page: number) => string
+ }
+}
+
+declare class Pagination extends React.Component{ }
+export = Pagination
\ No newline at end of file
diff --git a/packages/ui/src/types/RadioButton.d.ts b/packages/ui/src/types/RadioButton.d.ts
new file mode 100644
index 000000000..8b24d1b54
--- /dev/null
+++ b/packages/ui/src/types/RadioButton.d.ts
@@ -0,0 +1,14 @@
+import * as React from 'react';
+
+declare namespace RadioButton {
+ interface RadioButtonProps extends React.InputHTMLAttributes {
+ checked?: boolean
+ defaultChecked?: boolean
+ labelText: string
+ children?: React.ReactNode
+ value: string | number
+ }
+}
+
+declare class RadioButton extends React.Component{ }
+export = RadioButton
diff --git a/packages/ui/src/types/RadioButtonGroup.d.ts b/packages/ui/src/types/RadioButtonGroup.d.ts
new file mode 100644
index 000000000..ff45d8e3f
--- /dev/null
+++ b/packages/ui/src/types/RadioButtonGroup.d.ts
@@ -0,0 +1,18 @@
+import * as React from 'react';
+
+declare namespace RadioButtonGroup {
+ interface RadioButtonGroupProps extends React.HTMLProps {
+ children?: React.ReactNode
+ controlled?: boolean
+ defaultSelected?: string | number
+ name: string
+ valueSelected?: string | number
+ vertical?: boolean
+ hideLabel?: boolean
+ helperText?: React.ReactNode
+ labelText?: React.ReactNode
+ }
+}
+
+declare class RadioButtonGroup extends React.Component{ }
+export = RadioButtonGroup
\ No newline at end of file
diff --git a/packages/ui/src/types/ReadMore.d.ts b/packages/ui/src/types/ReadMore.d.ts
new file mode 100644
index 000000000..b58472c54
--- /dev/null
+++ b/packages/ui/src/types/ReadMore.d.ts
@@ -0,0 +1,18 @@
+import * as React from 'react';
+
+declare namespace ReadMore {
+ interface ReadMoreProps extends React.HTMLProps {
+ children: React.ReactNode
+ collapsed?: boolean
+ collapseLink?: React.ReactNode
+ collapseText?: React.ReactNode
+ disableAutoscroll?: boolean
+ expandLink?: React.ReactNode
+ expandText?: React.ReactNode
+ fade?: boolean
+ maxHeight?: number
+ }
+}
+
+declare class ReadMore extends React.Component{ }
+export = ReadMore
diff --git a/packages/ui/src/types/Search.d.ts b/packages/ui/src/types/Search.d.ts
new file mode 100644
index 000000000..bec442a10
--- /dev/null
+++ b/packages/ui/src/types/Search.d.ts
@@ -0,0 +1,11 @@
+import * as React from 'react';
+import { InputProps } from './Input'
+
+declare namespace Search {
+ interface SearchProps extends InputProps {
+ id?: string
+ }
+}
+
+declare class Search extends React.Component{ }
+export = Search
\ No newline at end of file
diff --git a/packages/ui/src/types/Select/Select.d.ts b/packages/ui/src/types/Select/Select.d.ts
new file mode 100644
index 000000000..4e2c44108
--- /dev/null
+++ b/packages/ui/src/types/Select/Select.d.ts
@@ -0,0 +1,21 @@
+import * as React from 'react';
+import * as HookForm from 'react-hook-form'
+
+declare namespace Select {
+ interface SelectProps extends React.HTMLProps {
+ children?: React.ReactNode,
+ inline?: boolean
+ labelText?: React.ReactNode
+ defaultValue?: any
+ iconDescription: string
+ hideLabel?: boolean
+ invalid?: boolean | HookForm.FieldError
+ invalidText?: string
+ helperText?: React.ReactNode
+ light?: boolean
+ small?: boolean
+ }
+}
+
+declare class Select extends React.Component{ }
+export = Select
\ No newline at end of file
diff --git a/packages/ui/src/types/Select/SelectItem.d.ts b/packages/ui/src/types/Select/SelectItem.d.ts
new file mode 100644
index 000000000..928a976c3
--- /dev/null
+++ b/packages/ui/src/types/Select/SelectItem.d.ts
@@ -0,0 +1,11 @@
+import * as React from 'react';
+
+declare namespace SelectItem {
+ interface SelectItemProps extends React.HTMLProps {
+ value?: any
+ text: string
+ }
+}
+
+declare class SelectItem extends React.Component{ }
+export = SelectItem
\ No newline at end of file
diff --git a/packages/ui/src/types/Select/index.d.ts b/packages/ui/src/types/Select/index.d.ts
new file mode 100644
index 000000000..095081213
--- /dev/null
+++ b/packages/ui/src/types/Select/index.d.ts
@@ -0,0 +1,11 @@
+import Select = require('./Select')
+import { SelectProps } from './Select'
+import SelectItem = require('./SelectItem')
+import { SelectItemProps } from './SelectItem'
+
+export {
+ Select,
+ SelectProps,
+ SelectItem,
+ SelectItemProps,
+}
\ No newline at end of file
diff --git a/packages/ui/src/types/Sidebar/Sidebar.d.ts b/packages/ui/src/types/Sidebar/Sidebar.d.ts
new file mode 100644
index 000000000..fedf82a8c
--- /dev/null
+++ b/packages/ui/src/types/Sidebar/Sidebar.d.ts
@@ -0,0 +1,13 @@
+import * as React from 'react';
+
+declare namespace Sidebar {
+ interface SidebarProps extends React.HTMLProps {
+ children?: React.ReactNode
+ active?: boolean
+ Sidebar?: React.ReactNode
+ sidebarMobileHeader?: React.ReactNode
+ }
+}
+
+declare class Sidebar extends React.Component{ }
+export = Sidebar
\ No newline at end of file
diff --git a/packages/ui/src/types/Sidebar/SidebarBackButton.d.ts b/packages/ui/src/types/Sidebar/SidebarBackButton.d.ts
new file mode 100644
index 000000000..d61eb47cd
--- /dev/null
+++ b/packages/ui/src/types/Sidebar/SidebarBackButton.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace SidebarBackButton {
+ interface SidebarBackButtonProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class SidebarBackButton extends React.Component{ }
+export = SidebarBackButton
\ No newline at end of file
diff --git a/packages/ui/src/types/Sidebar/SidebarContentBody.d.ts b/packages/ui/src/types/Sidebar/SidebarContentBody.d.ts
new file mode 100644
index 000000000..c302eb79d
--- /dev/null
+++ b/packages/ui/src/types/Sidebar/SidebarContentBody.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace SidebarContentBody {
+ interface SidebarContentBodyProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class SidebarContentBody extends React.Component{ }
+export = SidebarContentBody
\ No newline at end of file
diff --git a/packages/ui/src/types/Sidebar/SidebarContentHeader.d.ts b/packages/ui/src/types/Sidebar/SidebarContentHeader.d.ts
new file mode 100644
index 000000000..6477f58d4
--- /dev/null
+++ b/packages/ui/src/types/Sidebar/SidebarContentHeader.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace SidebarContentHeader {
+ interface SidebarContentHeaderProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class SidebarContentHeader extends React.Component{ }
+export = SidebarContentHeader
\ No newline at end of file
diff --git a/packages/ui/src/types/Sidebar/SidebarHeader.d.ts b/packages/ui/src/types/Sidebar/SidebarHeader.d.ts
new file mode 100644
index 000000000..944d24b11
--- /dev/null
+++ b/packages/ui/src/types/Sidebar/SidebarHeader.d.ts
@@ -0,0 +1,11 @@
+import * as React from 'react';
+
+declare namespace SidebarHeader {
+ interface SidebarHeaderProps extends React.HTMLProps {
+ children?: React.ReactNode
+ noPadding?: boolean
+ }
+}
+
+declare class SidebarHeader extends React.Component{ }
+export = SidebarHeader
\ No newline at end of file
diff --git a/packages/ui/src/types/Sidebar/SidebarScroll.d.ts b/packages/ui/src/types/Sidebar/SidebarScroll.d.ts
new file mode 100644
index 000000000..1a9c544a5
--- /dev/null
+++ b/packages/ui/src/types/Sidebar/SidebarScroll.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace SidebarScroll {
+ interface SidebarScrollProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class SidebarScroll extends React.Component{ }
+export = SidebarScroll
\ No newline at end of file
diff --git a/packages/ui/src/types/Sidebar/index.d.ts b/packages/ui/src/types/Sidebar/index.d.ts
new file mode 100644
index 000000000..a99f732b6
--- /dev/null
+++ b/packages/ui/src/types/Sidebar/index.d.ts
@@ -0,0 +1,27 @@
+import SidebarHeader = require('./SidebarHeader')
+import { SidebarHeaderProps } from './SidebarHeader'
+import SidebarContentHeader = require('./SidebarContentHeader')
+import { SidebarContentHeaderProps } from './SidebarContentHeader'
+import SidebarContentBody = require('./SidebarContentBody')
+import { SidebarContentBodyProps } from './SidebarContentBody'
+import SidebarScroll = require('./SidebarScroll')
+import { SidebarScrollProps } from './SidebarScroll'
+import SidebarBackButton = require('./SidebarBackButton')
+import { SidebarBackButtonProps } from './SidebarBackButton'
+import Sidebar = require('./Sidebar')
+import { SidebarProps } from './Sidebar'
+
+export {
+ Sidebar,
+ SidebarProps,
+ SidebarHeader,
+ SidebarHeaderProps,
+ SidebarContentHeader,
+ SidebarContentHeaderProps,
+ SidebarContentBody,
+ SidebarContentBodyProps,
+ SidebarScroll,
+ SidebarScrollProps,
+ SidebarBackButton,
+ SidebarBackButtonProps,
+}
\ No newline at end of file
diff --git a/packages/ui/src/types/SingleDatePickerInput.d.ts b/packages/ui/src/types/SingleDatePickerInput.d.ts
new file mode 100644
index 000000000..050c0a33f
--- /dev/null
+++ b/packages/ui/src/types/SingleDatePickerInput.d.ts
@@ -0,0 +1,22 @@
+import * as React from 'react';
+import * as ReactHook from 'react-hook-form'
+
+declare namespace SingleDatePickerInput {
+ interface SingleDatePickerInputProps extends React.InputHTMLAttributes {
+ datePicker: ()=> void
+ labelText: string
+ placeholder?: string
+ hideLabel?: boolean
+ showClearDate?: boolean
+ invalid?: boolean | ReactHook.FieldError
+ invalidText?: string
+ showDefaultInputIcon?: boolean
+ inputIconPosition?: string
+ helperText?: string
+ startDatePlaceholderText?: string
+ endDatePlaceholderText?: string
+ }
+}
+
+declare class SingleDatePickerInput extends React.Component{ }
+export = SingleDatePickerInput
\ No newline at end of file
diff --git a/packages/ui/src/types/Story.d.ts b/packages/ui/src/types/Story.d.ts
new file mode 100644
index 000000000..0a444ce05
--- /dev/null
+++ b/packages/ui/src/types/Story.d.ts
@@ -0,0 +1,10 @@
+import * as React from 'react';
+
+declare namespace Story {
+ interface StoryProps extends React.HTMLProps {
+ children?: React.ReactNode
+ }
+}
+
+declare class Story extends React.Component{ }
+export = Story
\ No newline at end of file
diff --git a/packages/ui/src/types/Table/Table.d.ts b/packages/ui/src/types/Table/Table.d.ts
new file mode 100644
index 000000000..c8152714c
--- /dev/null
+++ b/packages/ui/src/types/Table/Table.d.ts
@@ -0,0 +1,12 @@
+import * as React from 'react';
+
+declare namespace Table {
+ interface TableProps extends React.HTMLProps {
+ children?: React.ReactNode
+ responsive?: boolean
+ withBorder?: boolean
+ }
+}
+
+declare class Table extends React.Component{ }
+export = Table
\ No newline at end of file
diff --git a/packages/ui/src/types/Table/TablePagination.d.ts b/packages/ui/src/types/Table/TablePagination.d.ts
new file mode 100644
index 000000000..210f686b0
--- /dev/null
+++ b/packages/ui/src/types/Table/TablePagination.d.ts
@@ -0,0 +1,9 @@
+import * as React from 'react';
+
+declare namespace TablePagination {
+ interface TablePaginationProps extends React.HTMLProps {
+ }
+}
+
+declare class TablePagination extends React.Component{ }
+export = TablePagination
\ No newline at end of file
diff --git a/packages/ui/src/types/Table/index.d.ts b/packages/ui/src/types/Table/index.d.ts
new file mode 100644
index 000000000..2072ebe0c
--- /dev/null
+++ b/packages/ui/src/types/Table/index.d.ts
@@ -0,0 +1,10 @@
+import Table = require('./Table')
+import { TableProps } from './Table'
+import TablePagination = require('./TablePagination')
+import { TablePaginationProps } from './TablePagination'
+export {
+ Table,
+ TableProps,
+ TablePagination,
+ TablePaginationProps
+}
\ No newline at end of file
diff --git a/packages/ui/src/types/Tabs/Tab.d.ts b/packages/ui/src/types/Tabs/Tab.d.ts
new file mode 100644
index 000000000..8de367e87
--- /dev/null
+++ b/packages/ui/src/types/Tabs/Tab.d.ts
@@ -0,0 +1,21 @@
+import * as React from 'react';
+
+declare namespace Tab {
+ interface TabProps extends Omit, 'label'> {
+ handleTabClick?: () => void
+ handleTabAnchorFocus?: () => void
+ handleTabKeyDown?: () => void
+ href: string
+ index?: number
+ label?: React.ReactNode
+ role: string
+ selected: boolean
+ tabIndex: number
+ renderAnchor?: () => React.ReactNode
+ renderContent?: () => React.ReactNode
+ renderListElement?: (() => React.ReactNode) | React.ReactNode
+ }
+}
+
+declare class Tab extends React.Component{ }
+export = Tab
\ No newline at end of file
diff --git a/packages/ui/src/types/Tabs/TabContent.d.ts b/packages/ui/src/types/Tabs/TabContent.d.ts
new file mode 100644
index 000000000..a2b46c503
--- /dev/null
+++ b/packages/ui/src/types/Tabs/TabContent.d.ts
@@ -0,0 +1,11 @@
+import * as React from 'react';
+
+declare namespace TabContent {
+ interface TabContentProps extends React.HTMLProps {
+ children?: React.ReactNode
+ selected?: boolean
+ }
+}
+
+declare class TabContent extends React.Component{ }
+export = TabContent
\ No newline at end of file
diff --git a/packages/ui/src/types/Tabs/Tabs.d.ts b/packages/ui/src/types/Tabs/Tabs.d.ts
new file mode 100644
index 000000000..f0a1e7ce6
--- /dev/null
+++ b/packages/ui/src/types/Tabs/Tabs.d.ts
@@ -0,0 +1,17 @@
+import * as React from 'react';
+
+declare namespace Tabs {
+ interface TabsProps extends Omit, 'selected'> {
+ ariaLabel?: string
+ customTabContent?: boolean
+ disableAnimation?: boolean
+ inline?: boolean
+ onSelectionChange?: () => void
+ children?: React.ReactNode
+ triggerHref?: string
+ selected?: number
+ }
+}
+
+declare class Tabs extends React.Component{ }
+export = Tabs
\ No newline at end of file
diff --git a/packages/ui/src/types/Tabs/index.d.ts b/packages/ui/src/types/Tabs/index.d.ts
new file mode 100644
index 000000000..fb84371f7
--- /dev/null
+++ b/packages/ui/src/types/Tabs/index.d.ts
@@ -0,0 +1,15 @@
+import Tab from './Tab'
+import { TabProps } from './Tab'
+import TabContent from './TabContent'
+import { TabContentProps } from './TabContent'
+import Tabs from './Tabs'
+import { TabsProps } from './Tabs'
+
+export {
+ Tab,
+ TabProps,
+ TabContent,
+ TabContentProps,
+ Tabs,
+ TabsProps,
+}
\ No newline at end of file
diff --git a/packages/ui/src/types/Tag.d.ts b/packages/ui/src/types/Tag.d.ts
new file mode 100644
index 000000000..285db90e5
--- /dev/null
+++ b/packages/ui/src/types/Tag.d.ts
@@ -0,0 +1,13 @@
+import * as React from 'react'
+import { TagType } from './utils'
+
+declare namespace Tag {
+ interface TagProps extends Omit, 'wrap'> {
+ children?: React.ReactNode
+ type: TagType
+ wrap?: boolean
+ }
+}
+
+declare class Tag extends React.Component { }
+export = Tag
\ No newline at end of file
diff --git a/packages/ui/src/types/Text.d.ts b/packages/ui/src/types/Text.d.ts
new file mode 100644
index 000000000..8ef62eacf
--- /dev/null
+++ b/packages/ui/src/types/Text.d.ts
@@ -0,0 +1,14 @@
+import * as React from 'react';
+import { Spacing, TextKind } from './utils';
+
+declare namespace Text {
+ interface TextProps extends React.HTMLProps {
+ kind?: TextKind,
+ children?: React.ReactNode
+ spacingTop?: Spacing
+ spacingBottom?: Spacing
+ }
+}
+
+declare class Text extends React.Component{ }
+export = Text
\ No newline at end of file
diff --git a/packages/ui/src/types/TextArea.d.ts b/packages/ui/src/types/TextArea.d.ts
new file mode 100644
index 000000000..894430b21
--- /dev/null
+++ b/packages/ui/src/types/TextArea.d.ts
@@ -0,0 +1,21 @@
+import * as React from 'react';
+import * as HookForm from 'react-hook-form'
+
+declare namespace TextArea {
+ interface TextAreaProps extends React.InputHTMLAttributes