diff --git a/packages/patternfly-3/patternfly-react/src/components/Button/Button.js b/packages/patternfly-3/patternfly-react/src/components/Button/Button.js
index 8f0f1f94cf6..d012fbfc5d6 100644
--- a/packages/patternfly-3/patternfly-react/src/components/Button/Button.js
+++ b/packages/patternfly-3/patternfly-react/src/components/Button/Button.js
@@ -1,3 +1,10 @@
import { Button } from 'react-bootstrap';
+import ButtonGroup from './ButtonGroup';
+import DropdownButton from './DropdownButton';
+import SplitButton from './SplitButton';
+
+Button.Dropdown = DropdownButton;
+Button.Group = ButtonGroup;
+Button.Split = SplitButton;
export default Button;
diff --git a/packages/patternfly-3/patternfly-react/src/components/Cards/Card.js b/packages/patternfly-3/patternfly-react/src/components/Cards/Card.js
index 08e3ea52927..b1144b2adfe 100644
--- a/packages/patternfly-3/patternfly-react/src/components/Cards/Card.js
+++ b/packages/patternfly-3/patternfly-react/src/components/Cards/Card.js
@@ -7,8 +7,19 @@ import CardBody from './CardBody';
import CardHeading from './CardHeading';
import CardFooter from './CardFooter';
import CardLink from './CardLink';
+import CardGrid from './CardGrid';
import CardDropdownButton from './CardDropdownButton';
import CardHeightMatching from './CardHeightMatching';
+import {
+ UtilizationCard,
+ UtilizationCardDetails,
+ UtilizationCardDetailsCount,
+ UtilizationCardDetailsDesc,
+ UtilizationCardDetailsLine1,
+ UtilizationCardDetailsLine2
+} from './UtilizationTrendCard';
+
+import { AggregateStatusCount, AggregateStatusNotifications, AggregateStatusNotification } from './AggregateStatusCard';
/**
* Card Component for PatternFly React
@@ -63,7 +74,17 @@ Card.Body = CardBody;
Card.Heading = CardHeading;
Card.Footer = CardFooter;
Card.Link = CardLink;
+Card.Grid = CardGrid;
Card.DropdownButton = CardDropdownButton;
Card.HeightMatching = CardHeightMatching;
+Card.UtilizationCard = UtilizationCard;
+Card.UtilizationCardDetails = UtilizationCardDetails;
+Card.UtilizationCardDetailsCount = UtilizationCardDetailsCount;
+Card.UtilizationCardDetailsDesc = UtilizationCardDetailsDesc;
+Card.UtilizationCardDetailsLine1 = UtilizationCardDetailsLine1;
+Card.UtilizationCardDetailsLine2 = UtilizationCardDetailsLine2;
+Card.AggregateStatusCount = AggregateStatusCount;
+Card.AggregateStatusNotifications = AggregateStatusNotifications;
+Card.AggregateStatusNotification = AggregateStatusNotification;
export default Card;
diff --git a/packages/patternfly-3/patternfly-react/src/components/Chart/Chart.js b/packages/patternfly-3/patternfly-react/src/components/Chart/Chart.js
new file mode 100644
index 00000000000..9aca1cf84b9
--- /dev/null
+++ b/packages/patternfly-3/patternfly-react/src/components/Chart/Chart.js
@@ -0,0 +1,27 @@
+import { default as AreaChart } from './AreaChart';
+import { default as BarChart } from './BarChart';
+import { BulletChart } from './BulletChart/index';
+import { default as DonutChart } from './DonutChart';
+import { default as GroupedBarChart } from './GroupedBarChart';
+import { default as LineChart } from './LineChart';
+import { default as PieChart } from './PieChart';
+import { default as SingleAreaChart } from './SingleAreaChart';
+import { default as SingleLineChart } from './SingleLineChart';
+import { default as SparklineChart } from './SparklineChart';
+import { default as StackedBarChart } from './StackedBarChart';
+
+const Chart = {
+ AreaChart,
+ BarChart,
+ BulletChart,
+ DonutChart,
+ GroupedBarChart,
+ LineChart,
+ PieChart,
+ SingleAreaChart,
+ SingleLineChart,
+ SparklineChart,
+ StackedBarChart
+};
+
+export default Chart;
diff --git a/packages/patternfly-3/patternfly-react/src/components/Dropdown/Dropdown.js b/packages/patternfly-3/patternfly-react/src/components/Dropdown/Dropdown.js
index ab537f03296..afdf0d4874c 100644
--- a/packages/patternfly-3/patternfly-react/src/components/Dropdown/Dropdown.js
+++ b/packages/patternfly-3/patternfly-react/src/components/Dropdown/Dropdown.js
@@ -1,3 +1,6 @@
+import { default as NavDropdown } from './NavDropdown';
import { Dropdown } from 'react-bootstrap';
+Dropdown.NavDropdown = NavDropdown;
+
export default Dropdown;
diff --git a/packages/patternfly-3/patternfly-react/src/components/HorizontalNav/HorizontalNav.js b/packages/patternfly-3/patternfly-react/src/components/HorizontalNav/HorizontalNav.js
index 43df9d81bdb..c40e26d91bc 100644
--- a/packages/patternfly-3/patternfly-react/src/components/HorizontalNav/HorizontalNav.js
+++ b/packages/patternfly-3/patternfly-react/src/components/HorizontalNav/HorizontalNav.js
@@ -1,5 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
+import { default as HorizontalNavMenu } from './HorizontalNavMenu';
+import { default as HorizontalNavMenuItem } from './HorizontalNavMenuItem';
const HorizontalNav = props => {
const { children } = props;
@@ -15,4 +17,7 @@ HorizontalNav.defaultProps = {
children: null
};
+HorizontalNav.Menu = HorizontalNavMenu;
+HorizontalNav.MenuItem = HorizontalNavMenuItem;
+
export default HorizontalNav;
diff --git a/packages/patternfly-3/patternfly-react/src/components/InlineEdit/InlineEdit.js b/packages/patternfly-3/patternfly-react/src/components/InlineEdit/InlineEdit.js
index c05058e2494..11ec09a16e2 100644
--- a/packages/patternfly-3/patternfly-react/src/components/InlineEdit/InlineEdit.js
+++ b/packages/patternfly-3/patternfly-react/src/components/InlineEdit/InlineEdit.js
@@ -1,4 +1,6 @@
import PropTypes from 'prop-types';
+import { default as ConfirmButton } from './ConfirmButton';
+import { default as CancelButton } from './CancelButton';
const InlineEdit = ({ value, isEditing, additionalData, renderValue, renderEdit }) => {
if (isEditing(additionalData)) {
@@ -19,4 +21,7 @@ InlineEdit.propTypes = {
renderEdit: PropTypes.func
};
+InlineEdit.ConfirmButton = ConfirmButton;
+InlineEdit.CancelButton = CancelButton;
+
export default InlineEdit;
diff --git a/packages/patternfly-3/patternfly-react/src/components/Label/DisposableLabel.js b/packages/patternfly-3/patternfly-react/src/components/Label/DisposableLabel.js
index 6d640f6e773..4e088bf489d 100644
--- a/packages/patternfly-3/patternfly-react/src/components/Label/DisposableLabel.js
+++ b/packages/patternfly-3/patternfly-react/src/components/Label/DisposableLabel.js
@@ -1,15 +1,26 @@
import React from 'react';
-import Label from './Label';
+import PropTypes from 'prop-types';
import { noop } from '../../common/helpers';
+import { Label as BsLabel } from 'react-bootstrap';
+import Label from './Label';
const DisposableLabel = props => ;
+// WARNING: This should be kept consistent with Label.propTypes
DisposableLabel.propTypes = {
- ...Label.propTypes
+ ...BsLabel.propTypes,
+ /** Children nodes */
+ children: PropTypes.node,
+ /** Label type */
+ type: PropTypes.string,
+ /** callback when Label is removed */
+ onRemoveClick: PropTypes.func
};
+// WARNING: This should be kept consistent with Label.defaultProps
DisposableLabel.defaultProps = {
- ...Label.defaultProps,
+ children: null,
+ type: 'default',
onRemoveClick: noop
};
diff --git a/packages/patternfly-3/patternfly-react/src/components/Label/Label.js b/packages/patternfly-3/patternfly-react/src/components/Label/Label.js
index 07c8049e4f2..e0e5850f00d 100644
--- a/packages/patternfly-3/patternfly-react/src/components/Label/Label.js
+++ b/packages/patternfly-3/patternfly-react/src/components/Label/Label.js
@@ -2,6 +2,9 @@ import React from 'react';
import { Label as BsLabel } from 'react-bootstrap';
import PropTypes from 'prop-types';
import RemoveButton from './RemoveButton';
+import DisposableLabel from './DisposableLabel';
+import CompoundLabel from './CompoundLabel';
+import LabelWithTooltip from './LabelWithTooltip';
const Label = ({ children, onRemoveClick, type, ...props }) => (
@@ -10,6 +13,7 @@ const Label = ({ children, onRemoveClick, type, ...props }) => (
);
+// WARNING: If you change propTypes you MUST also change DisposableLabel.propTypes
Label.propTypes = {
...BsLabel.propTypes,
/** Children nodes */
@@ -20,10 +24,16 @@ Label.propTypes = {
onRemoveClick: PropTypes.func
};
+// WARNING: If you change defaultProps you MUST also change DisposableLabel.defaultProps
Label.defaultProps = {
children: null,
type: 'default',
onRemoveClick: undefined
};
+Label.RemoveButton = RemoveButton;
+Label.DisposableLabel = DisposableLabel;
+Label.CompoundLabel = CompoundLabel;
+Label.WithTooltop = LabelWithTooltip;
+
export default Label;
diff --git a/packages/patternfly-3/patternfly-react/src/components/Label/index.js b/packages/patternfly-3/patternfly-react/src/components/Label/index.js
index 17f0461218f..bc75219bb4a 100644
--- a/packages/patternfly-3/patternfly-react/src/components/Label/index.js
+++ b/packages/patternfly-3/patternfly-react/src/components/Label/index.js
@@ -1,6 +1,6 @@
+import Label from './Label';
import DisposableLabel from './DisposableLabel';
import RemoveButton from './RemoveButton';
import CompoundLabel from './CompoundLabel';
-export { default as Label } from './Label';
-export { DisposableLabel, RemoveButton, CompoundLabel };
+export { Label, DisposableLabel, RemoveButton, CompoundLabel };
diff --git a/packages/patternfly-3/patternfly-react/src/components/ListGroup/ListGroup.js b/packages/patternfly-3/patternfly-react/src/components/ListGroup/ListGroup.js
index aee4973ec09..6bb463c6f21 100644
--- a/packages/patternfly-3/patternfly-react/src/components/ListGroup/ListGroup.js
+++ b/packages/patternfly-3/patternfly-react/src/components/ListGroup/ListGroup.js
@@ -1,3 +1,6 @@
import { ListGroup } from 'react-bootstrap';
+import { default as ListGroupItem } from './ListGroupItem';
+
+ListGroup.ListGroupItem = ListGroupItem;
export default ListGroup;
diff --git a/packages/patternfly-3/patternfly-react/src/components/LoginPage/LoginPage.js b/packages/patternfly-3/patternfly-react/src/components/LoginPage/LoginPage.js
index b4699105f3b..4de09ab465a 100644
--- a/packages/patternfly-3/patternfly-react/src/components/LoginPage/LoginPage.js
+++ b/packages/patternfly-3/patternfly-react/src/components/LoginPage/LoginPage.js
@@ -1,16 +1,32 @@
import React from 'react';
import PropTypes from 'prop-types';
+import LoginPageAlert from './components/LoginPageComponents/LoginPageAlert';
import Container from './components/LoginPageComponents/LoginPageContainer';
import Header from './components/LoginPageComponents/LoginPageHeader';
import Footer from './components/LoginPageComponents/LoginPageFooter';
import FooterLinks from './components/LoginPageComponents/LoginFooterLinks';
import LoginCard from './components/LoginCardComponents/LoginCard';
import WithTranslation from './components/LoginPageComponents/LoginPageWithTranslation';
-import LoginPageAlert from './components/LoginPageComponents/LoginPageAlert';
import LoginPageLink from './components/LoginPageComponents/LoginPageLink';
import SocialLoginPage from './SocialLoginPage';
import SocialLoginPageContainer from './components/LoginPageComponents/SocialLoginPageContainer';
import BasicLoginPageLayout from './components/LoginPageComponents/BasicLoginPageLayout';
+import LoginCardHeader from './components/LoginCardComponents/LoginCardHeader';
+import LoginLanguagePicker from './components/LoginCardComponents/LoginLanguagePicker';
+import LoginCardWithValidation from './components/LoginCardComponents/LoginCardWithValidation';
+import LoginCardForm from './components/LoginCardComponents/LoginCardForm';
+import LoginCardSignUp from './components/LoginCardComponents/LoginCardSignUp';
+import LoginCardInput from './components/LoginCardComponents/LoginCardInput';
+import LoginCardInputWarning from './components/LoginCardComponents/LoginCardInputWarning';
+import LoginCardSettings from './components/LoginCardComponents/LoginCardSettings';
+import LoginFormError from './components/LoginCardComponents/LoginFormError';
+import LoginCardForgotPassword from './components/LoginCardComponents/LoginCardForgotPassword';
+import LoginCardRememberMe from './components/LoginCardComponents/LoginCardRememberMe';
+import LoginCardSocialSection from './components/LoginCardComponents/LoginCardSocialSection';
+import LoginCardSocialLink from './components/LoginCardComponents/LoginCardSocialLink';
+import LoginCardSocialColumns from './components/LoginCardComponents/LoginCardSocialColumns';
+import SocialLoginCard from './components/LoginCardComponents/SocialLoginCard';
+import BasicLoginCardLayout from './components/LoginCardComponents/BasicLoginCardLayout';
const LoginPagePattern = ({ container, header, footerLinks, card }) => (
@@ -56,6 +72,22 @@ LoginPage.Social = SocialLoginPage;
LoginPage.SocialContainer = SocialLoginPageContainer;
LoginPage.BasicLayout = BasicLoginPageLayout;
LoginPage.Link = LoginPageLink;
+LoginPage.CardHeaer = LoginCardHeader;
+LoginPage.LanguagePicker = LoginLanguagePicker;
+LoginPage.CardWithValidation = LoginCardWithValidation;
+LoginPage.CardForm = LoginCardForm;
+LoginPage.CardSignUp = LoginCardSignUp;
+LoginPage.CardInput = LoginCardInput;
+LoginPage.CardInputWarning = LoginCardInputWarning;
+LoginPage.CardSettings = LoginCardSettings;
+LoginPage.FormError = LoginFormError;
+LoginPage.CardForgotPassword = LoginCardForgotPassword;
+LoginPage.CardRememberMe = LoginCardRememberMe;
+LoginPage.CardSocialSection = LoginCardSocialSection;
+LoginPage.CardSocialLink = LoginCardSocialLink;
+LoginPage.CardSocialColumns = LoginCardSocialColumns;
+LoginPage.SocialLoginCard = SocialLoginCard;
+LoginPage.BasicLoginCardLayout = BasicLoginCardLayout;
LoginPagePattern.propTypes = {
container: PropTypes.shape({ ...LoginPage.Container.propTypes }),
diff --git a/packages/patternfly-3/patternfly-react/src/components/Nav/Nav.js b/packages/patternfly-3/patternfly-react/src/components/Nav/Nav.js
index 8911def6333..0b43412c4b4 100644
--- a/packages/patternfly-3/patternfly-react/src/components/Nav/Nav.js
+++ b/packages/patternfly-3/patternfly-react/src/components/Nav/Nav.js
@@ -1,3 +1,6 @@
import { Nav } from 'react-bootstrap';
+import { default as NavItem } from './NavItem';
+
+Nav.Item = NavItem;
export default Nav;
diff --git a/packages/patternfly-3/patternfly-react/src/components/Pagination/Pagination.js b/packages/patternfly-3/patternfly-react/src/components/Pagination/Pagination.js
new file mode 100644
index 00000000000..4198e6cc05c
--- /dev/null
+++ b/packages/patternfly-3/patternfly-react/src/components/Pagination/Pagination.js
@@ -0,0 +1,26 @@
+import paginate from './paginate';
+import { PAGINATION_VIEW, PAGINATION_VIEW_TYPES } from './PaginationConstants';
+import Pager from './Pager';
+import Paginator from './Paginator';
+import PaginationRow from './PaginationRow';
+import PaginationRowAmountOfPages from './PaginationRowAmountOfPages';
+import PaginationRowArrowIcon from './PaginationRowArrowIcon';
+import PaginationRowBack from './PaginationRowBack';
+import PaginationRowButtonGroup from './PaginationRowButtonGroup';
+import PaginationRowForward from './PaginationRowForward';
+import PaginationRowItems from './PaginationRowItems';
+
+export const Pagination = {
+ paginate,
+ Pager,
+ Paginator,
+ PAGINATION_VIEW,
+ PAGINATION_VIEW_TYPES,
+ Row: PaginationRow,
+ RowAmountOfPages: PaginationRowAmountOfPages,
+ RowArrowIcon: PaginationRowArrowIcon,
+ RowBack: PaginationRowBack,
+ RowButtonGroup: PaginationRowButtonGroup,
+ RowForward: PaginationRowForward,
+ RowItems: PaginationRowItems
+};
diff --git a/packages/patternfly-3/patternfly-react/src/components/SessionTimeout/SessionTimeout.js b/packages/patternfly-3/patternfly-react/src/components/SessionTimeout/SessionTimeout.js
index 9df156da99a..47df02406e1 100644
--- a/packages/patternfly-3/patternfly-react/src/components/SessionTimeout/SessionTimeout.js
+++ b/packages/patternfly-3/patternfly-react/src/components/SessionTimeout/SessionTimeout.js
@@ -1,6 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Icon, MessageDialog } from '../../index';
+import CountDownSessionTimeout from './CountDownSessionTimeout';
const SessionTimeout = props => (
{
);
};
+// WARNING: If you change propTypes OR defaultProps you MUST also change TimedToastNotification
ToastNotification.propTypes = { ...Alert.propTypes };
ToastNotification.defaultProps = { ...Alert.defaultProps };
+// WARNING: If you change TOAST_NOTIFICATION_TYPES you MUST also change TimedToastNotification
ToastNotification.TOAST_NOTIFICATION_TYPES = [...Alert.ALERT_TYPES];
+ToastNotification.Timed = TimedToastNotification;
+ToastNotification.List = ToastNotificationList;
export default ToastNotification;
diff --git a/packages/patternfly-3/patternfly-react/src/components/TreeView/TreeView.js b/packages/patternfly-3/patternfly-react/src/components/TreeView/TreeView.js
index 92a503d8aa8..0abb5006c21 100644
--- a/packages/patternfly-3/patternfly-react/src/components/TreeView/TreeView.js
+++ b/packages/patternfly-3/patternfly-react/src/components/TreeView/TreeView.js
@@ -4,6 +4,9 @@ import classNames from 'classnames';
import { noop, KEYS } from '../../common/helpers';
import TreeViewNode from './TreeViewNode';
+import TreeViewExpand from './TreeViewExpand';
+import TreeViewIcon from './TreeViewIcon';
+import TreeViewIndents from './TreeViewIndents';
class TreeView extends React.Component {
state = {
@@ -126,4 +129,9 @@ TreeView.defaultProps = {
accessibleName: ''
};
+TreeView.Node = TreeViewNode;
+TreeView.Expand = TreeViewExpand;
+TreeView.Icon = TreeViewIcon;
+TreeView.Indents = TreeViewIndents;
+
export default TreeView;
diff --git a/packages/patternfly-3/patternfly-react/src/components/TypeAheadSelect/TypeAheadSelect.js b/packages/patternfly-3/patternfly-react/src/components/TypeAheadSelect/TypeAheadSelect.js
index 777a46990d3..42a760f18ff 100644
--- a/packages/patternfly-3/patternfly-react/src/components/TypeAheadSelect/TypeAheadSelect.js
+++ b/packages/patternfly-3/patternfly-react/src/components/TypeAheadSelect/TypeAheadSelect.js
@@ -9,6 +9,7 @@ import {
menuItemContainer,
tokenContainer
} from 'react-bootstrap-typeahead';
+import AsyncTypeAheadSelect from './AsyncTypeAheadSelect';
TypeAheadSelect.Highlighter = Highlighter;
TypeAheadSelect.Menu = Menu;
@@ -19,4 +20,6 @@ TypeAheadSelect.asyncContainer = asyncContainer;
TypeAheadSelect.menuItemContainer = menuItemContainer;
TypeAheadSelect.tokenContainer = tokenContainer;
+TypeAheadSelect.Async = AsyncTypeAheadSelect;
+
export default TypeAheadSelect;