diff --git a/packages/react-core/index.d.ts b/packages/react-core/src/demos/assets/custom.d.ts
similarity index 100%
rename from packages/react-core/index.d.ts
rename to packages/react-core/src/demos/assets/custom.d.ts
diff --git a/packages/react-core/src/demos/examples/DashboardHeader.js b/packages/react-core/src/demos/examples/DashboardHeader.js
deleted file mode 100644
index 1367cfa8626..00000000000
--- a/packages/react-core/src/demos/examples/DashboardHeader.js
+++ /dev/null
@@ -1,220 +0,0 @@
-import React from 'react';
-import {
- Avatar,
- Brand,
- Button,
- ButtonVariant,
- Divider,
- Dropdown,
- DropdownGroup,
- DropdownItem,
- DropdownList,
- Masthead,
- MastheadToggle,
- MastheadMain,
- MastheadBrand,
- MastheadContent,
- MenuToggle,
- Toolbar,
- ToolbarContent,
- ToolbarGroup,
- ToolbarItem,
- PageToggleButton
-} from '@patternfly/react-core';
-import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
-import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
-import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
-import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
-import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
-import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
-import imgAvatar from '@patternfly/react-core/src/components/assets/avatarImg.svg';
-import pfLogo from '@patternfly/react-core/src/demos/assets/pf-logo.svg';
-
-export default class DashboardHeader extends React.Component {
- constructor(props) {
- super(props);
- this.state = {
- isDropdownOpen: false,
- isKebabDropdownOpen: false,
- isFullKebabDropdownOpen: false,
- activeItem: 0
- };
-
- this.onDropdownToggle = () => {
- this.setState((prevState) => ({
- isDropdownOpen: !prevState.isDropdownOpen
- }));
- };
-
- this.onDropdownSelect = () => {
- this.setState({
- isDropdownOpen: false
- });
- };
-
- this.onKebabDropdownToggle = () => {
- this.setState((prevState) => ({
- isKebabDropdownOpen: !prevState.isKebabDropdownOpen
- }));
- };
-
- this.onKebabDropdownSelect = () => {
- this.setState({
- isKebabDropdownOpen: false
- });
- };
-
- this.onFullKebabToggle = () => {
- this.setState((prevState) => ({
- isFullKebabDropdownOpen: !prevState.isFullKebabDropdownOpen
- }));
- };
-
- this.onFullKebabSelect = () => {
- this.setState({
- isFullKebabDropdownOpen: false
- });
- };
- }
-
- render() {
- const { isDropdownOpen, isKebabDropdownOpen, isFullKebabDropdownOpen } = this.state;
- const { notificationBadge } = this.props;
-
- const kebabDropdownItems = (
- <>
-
- Settings
-
-
- Help
-
- >
- );
- const userDropdownItems = (
- <>
- My profile
- User management
- Logout
- >
- );
-
- const headerToolbar = (
-
-
-
- {notificationBadge ? (
- notificationBadge
- ) : (
-
- }
- onClick={() => {}}
- />
-
- )}
-
-
- } />
-
-
- } />
-
-
-
- this.setState({ isKebabDropdownOpen: isOpen })}
- popperProps={{ position: 'right' }}
- toggle={(toggleRef) => (
-
-
-
- )}
- >
- {kebabDropdownItems}
-
-
-
- this.setState({ isFullKebabDropdownOpen: isOpen })}
- popperProps={{ position: 'right' }}
- toggle={(toggleRef) => (
-
-
-
- )}
- >
-
- {userDropdownItems}
-
-
- {kebabDropdownItems}
-
-
-
-
- this.setState({ isDropdownOpen: isOpen })}
- popperProps={{ position: 'right' }}
- toggle={(toggleRef) => (
- }
- isFullHeight
- >
- Ned Username
-
- )}
- >
- {userDropdownItems}
-
-
-
-
- );
-
- const masthead = (
-
-
-
-
-
-
-
-
-
-
-
- {headerToolbar}
-
- );
-
- return masthead;
- }
-}
diff --git a/packages/react-core/src/demos/examples/DashboardWrapper.js b/packages/react-core/src/demos/examples/DashboardWrapper.js
index 817d719ef3c..ae529b79de0 100644
--- a/packages/react-core/src/demos/examples/DashboardWrapper.js
+++ b/packages/react-core/src/demos/examples/DashboardWrapper.js
@@ -13,7 +13,7 @@ import {
Text,
TextContent
} from '@patternfly/react-core';
-import DashboardHeader from '@patternfly/react-core/src/demos/examples/DashboardHeader';
+import DashboardHeader from '@patternfly/react-core/src/demos/examples/Page/DashboardHeader';
export const DashboardBreadcrumb = (
diff --git a/packages/react-core/src/demos/examples/Page/DashboardHeader.tsx b/packages/react-core/src/demos/examples/Page/DashboardHeader.tsx
new file mode 100644
index 00000000000..c2ba2f476a0
--- /dev/null
+++ b/packages/react-core/src/demos/examples/Page/DashboardHeader.tsx
@@ -0,0 +1,200 @@
+import React, { useState } from 'react';
+import {
+ Avatar,
+ Brand,
+ Button,
+ ButtonVariant,
+ Divider,
+ Dropdown,
+ DropdownGroup,
+ DropdownItem,
+ DropdownList,
+ Masthead,
+ MastheadToggle,
+ MastheadMain,
+ MastheadBrand,
+ MastheadContent,
+ MenuToggle,
+ Toolbar,
+ ToolbarContent,
+ ToolbarGroup,
+ ToolbarItem,
+ PageToggleButton
+} from '@patternfly/react-core';
+import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
+import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
+import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
+import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
+import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
+import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
+import imgAvatar from '@patternfly/react-core/src/components/assets/avatarImg.svg';
+import pfLogo from '@patternfly/react-core/src/demos/assets/pf-logo.svg';
+
+interface DashboardHeaderProps {
+ notificationBadge: React.ReactNode | null;
+}
+
+const DashboardHeader: React.FC = ({ notificationBadge }) => {
+ const [isDropdownOpen, setIsDropdownOpen] = useState(false);
+ const [isKebabDropdownOpen, setIsKebabDropdownOpen] = useState(false);
+ const [isFullKebabDropdownOpen, setIsFullKebabDropdownOpen] = useState(false);
+
+ const kebabDropdownItems = (
+ <>
+
+ Settings
+
+
+ Help
+
+ >
+ );
+
+ const userDropdownItems = (
+ <>
+ My profile
+ User management
+ Logout
+ >
+ );
+
+ const onDropdownToggle = () => {
+ setIsDropdownOpen((prevIsDropdownOpen) => !prevIsDropdownOpen);
+ };
+
+ const onDropdownSelect = () => {
+ setIsDropdownOpen(false);
+ };
+
+ const onKebabDropdownToggle = () => {
+ setIsKebabDropdownOpen((prevIsKebabDropdownOpen) => !prevIsKebabDropdownOpen);
+ };
+
+ const onKebabDropdownSelect = () => {
+ setIsKebabDropdownOpen(false);
+ };
+
+ const onFullKebabToggle = () => {
+ setIsFullKebabDropdownOpen((prevIsFullKebabDropdownOpen) => !prevIsFullKebabDropdownOpen);
+ };
+
+ const onFullKebabSelect = () => {
+ setIsFullKebabDropdownOpen(false);
+ };
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {notificationBadge ? (
+ notificationBadge
+ ) : (
+
+ }
+ onClick={() => {}}
+ />
+
+ )}
+
+
+ } />
+
+
+ } />
+
+
+
+ ) => (
+
+
+
+ )}
+ >
+ {kebabDropdownItems}
+
+
+
+ ) => (
+
+
+
+ )}
+ >
+
+ {userDropdownItems}
+
+
+ {kebabDropdownItems}
+
+
+
+
+ ) => (
+ }
+ isFullHeight
+ >
+ Ned Username
+
+ )}
+ >
+ {userDropdownItems}
+
+
+
+
+
+
+ );
+};
+
+export default DashboardHeader;
diff --git a/yarn.lock b/yarn.lock
index e8813e3a618..5e531b7a6c2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3778,10 +3778,10 @@
node-addon-api "^3.2.1"
node-gyp-build "^4.3.0"
-"@patternfly/ast-helpers@^1.1.15":
- version "1.1.15"
- resolved "https://registry.yarnpkg.com/@patternfly/ast-helpers/-/ast-helpers-1.1.15.tgz#a70ce0e5cd3e6400d84ed8d8fa08371c48ab37fc"
- integrity sha512-OZRZ1NOByk/p9UjhQOdNdX/WE75QJYmUjXwVvqI3cxuKWI/CnC35s+n/MfABTy1hAmVgY3dYjAuYarDY0P6qdA==
+"@patternfly/ast-helpers@^1.1.16":
+ version "1.1.16"
+ resolved "https://registry.yarnpkg.com/@patternfly/ast-helpers/-/ast-helpers-1.1.16.tgz#4fd8e9cbc8e6bea3c65f9084ae12d8eaca0fcddf"
+ integrity sha512-9+CgK7V9Bh6EnHnj4+qvAP20PVDNFswuFHoCq4GegFbZ72v1TKlOokwODbXqm8iFa8YBO7qrfpIuUaBlmS0chA==
dependencies:
acorn "^8.4.1"
acorn-class-fields "^1.0.0"
@@ -3789,10 +3789,10 @@
acorn-static-class-features "^1.0.0"
astring "^1.7.5"
-"@patternfly/documentation-framework@^5.0.14":
- version "5.1.15"
- resolved "https://registry.yarnpkg.com/@patternfly/documentation-framework/-/documentation-framework-5.1.15.tgz#89a18c8562beefdc0173467eb85768aa0a1300eb"
- integrity sha512-v7pdXL0ug2pLjPuBIwzxvUHhZ5mH7CnSKi4MvkFgwd7KoDLwyNPaWLm0DBBWS3JTTfcwUeDL3/hTEDuzjgKmSw==
+"@patternfly/documentation-framework@^5.0.15":
+ version "5.1.16"
+ resolved "https://registry.yarnpkg.com/@patternfly/documentation-framework/-/documentation-framework-5.1.16.tgz#1a71c1877d081b0738a5f54e21a2882651a5f94e"
+ integrity sha512-jLI4jWHBuXlNtBFhSLwDvTSfE5z71eU3yqQ32Dh+//jX5zNk7Iw9nR1oOXfhjDi6bJnVl+jadAaEac5AcZVDAA==
dependencies:
"@babel/core" "7.18.2"
"@babel/plugin-proposal-class-properties" "7.17.12"
@@ -3802,7 +3802,7 @@
"@babel/plugin-transform-react-jsx" "7.17.12"
"@babel/preset-env" "7.18.2"
"@mdx-js/util" "1.6.16"
- "@patternfly/ast-helpers" "^1.1.15"
+ "@patternfly/ast-helpers" "^1.1.16"
"@reach/router" "npm:@gatsbyjs/reach-router@1.3.9"
autoprefixer "9.8.6"
babel-loader "9.1.2"