@patternfly/react-core 5.0.0-alpha.53 → 5.0.0-alpha.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/esm/components/Page/Page.d.ts +2 -2
  3. package/dist/esm/components/Page/Page.d.ts.map +1 -1
  4. package/dist/esm/components/Page/index.d.ts +0 -4
  5. package/dist/esm/components/Page/index.d.ts.map +1 -1
  6. package/dist/esm/components/Page/index.js +0 -4
  7. package/dist/esm/components/Page/index.js.map +1 -1
  8. package/dist/esm/deprecated/components/PageHeader/PageHeader.d.ts.map +1 -0
  9. package/dist/esm/{components/Page → deprecated/components/PageHeader}/PageHeader.js +2 -2
  10. package/dist/esm/deprecated/components/PageHeader/PageHeader.js.map +1 -0
  11. package/dist/esm/deprecated/components/PageHeader/PageHeaderTools.d.ts.map +1 -0
  12. package/dist/esm/deprecated/components/PageHeader/PageHeaderTools.js.map +1 -0
  13. package/dist/esm/deprecated/components/PageHeader/PageHeaderToolsGroup.d.ts.map +1 -0
  14. package/dist/esm/{components/Page → deprecated/components/PageHeader}/PageHeaderToolsGroup.js +2 -2
  15. package/dist/esm/deprecated/components/PageHeader/PageHeaderToolsGroup.js.map +1 -0
  16. package/dist/esm/deprecated/components/PageHeader/PageHeaderToolsItem.d.ts.map +1 -0
  17. package/dist/esm/{components/Page → deprecated/components/PageHeader}/PageHeaderToolsItem.js +2 -2
  18. package/dist/esm/deprecated/components/PageHeader/PageHeaderToolsItem.js.map +1 -0
  19. package/dist/esm/deprecated/components/PageHeader/index.d.ts +5 -0
  20. package/dist/esm/deprecated/components/PageHeader/index.d.ts.map +1 -0
  21. package/dist/esm/deprecated/components/PageHeader/index.js +5 -0
  22. package/dist/esm/deprecated/components/PageHeader/index.js.map +1 -0
  23. package/dist/esm/deprecated/components/index.d.ts +1 -0
  24. package/dist/esm/deprecated/components/index.d.ts.map +1 -1
  25. package/dist/esm/deprecated/components/index.js +1 -0
  26. package/dist/esm/deprecated/components/index.js.map +1 -1
  27. package/dist/js/components/Page/Page.d.ts +2 -2
  28. package/dist/js/components/Page/Page.d.ts.map +1 -1
  29. package/dist/js/components/Page/index.d.ts +0 -4
  30. package/dist/js/components/Page/index.d.ts.map +1 -1
  31. package/dist/js/components/Page/index.js +0 -4
  32. package/dist/js/components/Page/index.js.map +1 -1
  33. package/dist/js/deprecated/components/PageHeader/PageHeader.d.ts.map +1 -0
  34. package/dist/js/{components/Page → deprecated/components/PageHeader}/PageHeader.js +2 -2
  35. package/dist/js/deprecated/components/PageHeader/PageHeader.js.map +1 -0
  36. package/dist/js/deprecated/components/PageHeader/PageHeaderTools.d.ts.map +1 -0
  37. package/dist/js/deprecated/components/PageHeader/PageHeaderTools.js.map +1 -0
  38. package/dist/js/deprecated/components/PageHeader/PageHeaderToolsGroup.d.ts.map +1 -0
  39. package/dist/js/{components/Page → deprecated/components/PageHeader}/PageHeaderToolsGroup.js +2 -2
  40. package/dist/js/deprecated/components/PageHeader/PageHeaderToolsGroup.js.map +1 -0
  41. package/dist/js/deprecated/components/PageHeader/PageHeaderToolsItem.d.ts.map +1 -0
  42. package/dist/js/{components/Page → deprecated/components/PageHeader}/PageHeaderToolsItem.js +2 -2
  43. package/dist/js/deprecated/components/PageHeader/PageHeaderToolsItem.js.map +1 -0
  44. package/dist/js/deprecated/components/PageHeader/index.d.ts +5 -0
  45. package/dist/js/deprecated/components/PageHeader/index.d.ts.map +1 -0
  46. package/dist/js/deprecated/components/PageHeader/index.js +8 -0
  47. package/dist/js/deprecated/components/PageHeader/index.js.map +1 -0
  48. package/dist/js/deprecated/components/index.d.ts +1 -0
  49. package/dist/js/deprecated/components/index.d.ts.map +1 -1
  50. package/dist/js/deprecated/components/index.js +1 -0
  51. package/dist/js/deprecated/components/index.js.map +1 -1
  52. package/dist/umd/react-core.min.js +1 -1
  53. package/package.json +2 -2
  54. package/src/components/Nav/examples/Nav.md +0 -5
  55. package/src/components/Page/Page.tsx +2 -2
  56. package/src/components/Page/__tests__/Page.test.tsx +1 -1
  57. package/src/components/Page/examples/Page.md +6 -13
  58. package/src/components/Page/index.ts +0 -4
  59. package/src/demos/Nav.md +37 -30
  60. package/src/demos/Page.md +0 -8
  61. package/src/demos/examples/Page/PageStickySectionGroupUsingPageHeader.tsx +0 -267
  62. package/src/{components/Page → deprecated/components/PageHeader}/PageHeader.tsx +2 -2
  63. package/src/{components/Page → deprecated/components/PageHeader}/PageHeaderToolsGroup.tsx +2 -2
  64. package/src/{components/Page → deprecated/components/PageHeader}/PageHeaderToolsItem.tsx +2 -2
  65. package/src/deprecated/components/PageHeader/examples/PageHeader.md +15 -0
  66. package/src/{components/Page → deprecated/components/PageHeader}/examples/PageVerticalNavUsingPageHeaderComponent.tsx +4 -2
  67. package/src/deprecated/components/PageHeader/index.ts +4 -0
  68. package/src/{components/Page/__tests__ → deprecated/components/PageHeader/tests}/PageHeader.test.tsx +0 -2
  69. package/src/{components/Page/__tests__/Generated → deprecated/components/PageHeader/tests}/PageHeaderTools.test.tsx +2 -2
  70. package/src/{components/Page/__tests__/Generated → deprecated/components/PageHeader/tests}/PageHeaderToolsGroup.test.tsx +2 -2
  71. package/src/{components/Page/__tests__/Generated → deprecated/components/PageHeader/tests}/PageHeaderToolsItem.test.tsx +2 -2
  72. package/src/{components/Page/__tests__/Generated → deprecated/components/PageHeader/tests}/__snapshots__/PageHeaderToolsItem.test.tsx.snap +1 -0
  73. package/src/deprecated/components/index.ts +1 -0
  74. package/dist/esm/components/Page/PageHeader.d.ts.map +0 -1
  75. package/dist/esm/components/Page/PageHeader.js.map +0 -1
  76. package/dist/esm/components/Page/PageHeaderTools.d.ts.map +0 -1
  77. package/dist/esm/components/Page/PageHeaderTools.js.map +0 -1
  78. package/dist/esm/components/Page/PageHeaderToolsGroup.d.ts.map +0 -1
  79. package/dist/esm/components/Page/PageHeaderToolsGroup.js.map +0 -1
  80. package/dist/esm/components/Page/PageHeaderToolsItem.d.ts.map +0 -1
  81. package/dist/esm/components/Page/PageHeaderToolsItem.js.map +0 -1
  82. package/dist/js/components/Page/PageHeader.d.ts.map +0 -1
  83. package/dist/js/components/Page/PageHeader.js.map +0 -1
  84. package/dist/js/components/Page/PageHeaderTools.d.ts.map +0 -1
  85. package/dist/js/components/Page/PageHeaderTools.js.map +0 -1
  86. package/dist/js/components/Page/PageHeaderToolsGroup.d.ts.map +0 -1
  87. package/dist/js/components/Page/PageHeaderToolsGroup.js.map +0 -1
  88. package/dist/js/components/Page/PageHeaderToolsItem.d.ts.map +0 -1
  89. package/dist/js/components/Page/PageHeaderToolsItem.js.map +0 -1
  90. package/src/components/Nav/examples/NavHorizontalPageHeader.tsx +0 -34
  91. /package/dist/esm/{components/Page → deprecated/components/PageHeader}/PageHeader.d.ts +0 -0
  92. /package/dist/esm/{components/Page → deprecated/components/PageHeader}/PageHeaderTools.d.ts +0 -0
  93. /package/dist/esm/{components/Page → deprecated/components/PageHeader}/PageHeaderTools.js +0 -0
  94. /package/dist/esm/{components/Page → deprecated/components/PageHeader}/PageHeaderToolsGroup.d.ts +0 -0
  95. /package/dist/esm/{components/Page → deprecated/components/PageHeader}/PageHeaderToolsItem.d.ts +0 -0
  96. /package/dist/js/{components/Page → deprecated/components/PageHeader}/PageHeader.d.ts +0 -0
  97. /package/dist/js/{components/Page → deprecated/components/PageHeader}/PageHeaderTools.d.ts +0 -0
  98. /package/dist/js/{components/Page → deprecated/components/PageHeader}/PageHeaderTools.js +0 -0
  99. /package/dist/js/{components/Page → deprecated/components/PageHeader}/PageHeaderToolsGroup.d.ts +0 -0
  100. /package/dist/js/{components/Page → deprecated/components/PageHeader}/PageHeaderToolsItem.d.ts +0 -0
  101. /package/src/{components/Page → deprecated/components/PageHeader}/PageHeaderTools.tsx +0 -0
  102. /package/src/{components/Page/__tests__ → deprecated/components/PageHeader/tests}/__snapshots__/PageHeader.test.tsx.snap +0 -0
  103. /package/src/{components/Page/__tests__/Generated → deprecated/components/PageHeader/tests}/__snapshots__/PageHeaderTools.test.tsx.snap +0 -0
  104. /package/src/{components/Page/__tests__/Generated → deprecated/components/PageHeader/tests}/__snapshots__/PageHeaderToolsGroup.test.tsx.snap +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "5.0.0-alpha.53",
3
+ "version": "5.0.0-alpha.54",
4
4
  "description": "This library provides a set of common React components for use with the PatternFly reference implementation.",
5
5
  "main": "dist/js/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -70,5 +70,5 @@
70
70
  "react": "^17 || ^18",
71
71
  "react-dom": "^17 || ^18"
72
72
  },
73
- "gitHead": "c4f0e8983765fbf06c61c96ff4ed29731087355f"
73
+ "gitHead": "1032b93276f93eb89b6e02893a14223e2fdfe25d"
74
74
  }
@@ -37,11 +37,6 @@ The following example shows two navigation groups, each with a `title` prop pass
37
37
  ```ts file="./NavMixed.tsx"
38
38
  ```
39
39
 
40
- ### Horizontal (only in PageHeader)
41
-
42
- ```ts file="./NavHorizontalPageHeader.tsx"
43
- ```
44
-
45
40
  ### Horizontal subnav
46
41
 
47
42
  ```ts file="./NavHorizontalSubNav.tsx"
@@ -19,7 +19,7 @@ export interface PageProps extends React.HTMLProps<HTMLDivElement> {
19
19
  children?: React.ReactNode;
20
20
  /** Additional classes added to the page layout */
21
21
  className?: string;
22
- /** Header component (e.g. <PageHeader />) */
22
+ /** Header component (e.g. <Masthead />) */
23
23
  header?: React.ReactNode;
24
24
  /** Sidebar component for a side nav (e.g. <PageSidebar />) */
25
25
  sidebar?: React.ReactNode;
@@ -41,7 +41,7 @@ export interface PageProps extends React.HTMLProps<HTMLDivElement> {
41
41
  mainTabIndex?: number | null;
42
42
  /**
43
43
  * If true, manages the sidebar open/close state and there is no need to pass the isNavOpen boolean into
44
- * the sidebar component or add a callback onNavToggle function into the PageHeader component
44
+ * the sidebar component or add a callback onNavToggle function into the Masthead component
45
45
  */
46
46
  isManagedSidebar?: boolean;
47
47
  /** Flag indicating if tertiary nav width should be limited */
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { render, screen } from '@testing-library/react';
4
4
 
5
5
  import { Page } from '../Page';
6
- import { PageHeader } from '../PageHeader';
6
+ import { PageHeader } from '../../../deprecated/components/PageHeader';
7
7
  import { PageSidebar } from '../PageSidebar';
8
8
  import { PageSection } from '../PageSection';
9
9
  import { Breadcrumb, BreadcrumbItem } from '../../Breadcrumb';
@@ -5,20 +5,20 @@ cssPrefix: pf-c-page
5
5
  propComponents:
6
6
  [
7
7
  'Page',
8
- 'PageHeader',
9
- 'PageHeaderTools',
10
- 'PageHeaderToolsGroup',
11
- 'PageHeaderToolsItem',
12
8
  'PageSidebar',
13
9
  'PageSection',
14
10
  'PageGroup',
15
11
  'PageBreadcrumb',
16
12
  'PageNavigation',
17
- 'PageToggleButton',
13
+ 'PageToggleButton'
18
14
  ]
19
15
  ---
20
16
 
21
17
  import BarsIcon from '@patternfly/react-icons/dist/js/icons/bars-icon';
18
+ import {
19
+ PageHeader,
20
+ PageHeaderTools
21
+ } from '@patternfly/react-core/deprecated';
22
22
  import './page.css';
23
23
 
24
24
  ## Examples
@@ -41,13 +41,6 @@ The `isNavOpen` property helps facilitate the opening and closing of the sidebar
41
41
  ```ts file="./PageVerticalNav.tsx"
42
42
  ```
43
43
 
44
- ### Legacy page header
45
-
46
- This example shows the legacy implementation of a page's vertical navigation. Our updated recommendation advises you to use a masthead and toolbar to make headers, rather than `<PageHeader>` and `<PageHeaderTools>` as shown in the following example.
47
-
48
- ```ts file="./PageVerticalNavUsingPageHeaderComponent.tsx"
49
- ```
50
-
51
44
  ### Horizontal navigation
52
45
 
53
46
  To add horizontal navigation to the top of a `<Page>`, add the navigation inside of a `<ToolbarItem>` in the `<Toolbar>` that is passed to the `<MastheadContent>` of the `<Masthead>`.
@@ -66,7 +59,7 @@ Tertiary navigation allows you to add an additional navigation menu alongside ve
66
59
 
67
60
  ### Uncontrolled navigation
68
61
 
69
- When the `isManagedSidebar` property is true, it manages the sidebar open/close state, removing the need to pass both `isNavOpen` into the `<PageSidebar>` and `onNavToggle` into the `<PageHeader>`.
62
+ When the `isManagedSidebar` property is true, it manages the sidebar open/close state, removing the need to pass both `isNavOpen` into the `<PageSidebar>` and `onNavToggle` into the `<PageToggleButton>`.
70
63
 
71
64
  ```ts file="./PageUncontrolledNav.tsx"
72
65
  ```
@@ -1,12 +1,8 @@
1
1
  export * from './Page';
2
2
  export * from './PageBreadcrumb';
3
3
  export * from './PageGroup';
4
- export * from './PageHeader';
5
4
  export * from './PageSidebar';
6
5
  export * from './PageSection';
7
- export * from './PageHeaderTools';
8
- export * from './PageHeaderToolsGroup';
9
- export * from './PageHeaderToolsItem';
10
6
  export * from './PageNavigation';
11
7
  export * from './PageToggleButton';
12
8
  export * from './PageContext';
package/src/demos/Nav.md CHANGED
@@ -2,14 +2,18 @@
2
2
  id: Navigation
3
3
  section: components
4
4
  ---
5
-
6
5
  import {
7
- Dropdown as DropdownDeprecated,
8
- DropdownGroup as DropdownGroupDeprecated,
9
- DropdownToggle,
10
- DropdownItem as DropdownItemDeprecated,
11
- KebabToggle
6
+ Dropdown as DropdownDeprecated,
7
+ DropdownGroup as DropdownGroupDeprecated,
8
+ DropdownToggle,
9
+ DropdownItem as DropdownItemDeprecated,
10
+ KebabToggle,
11
+ PageHeader,
12
+ PageHeaderTools,
13
+ PageHeaderToolsGroup,
14
+ PageHeaderToolsItem
12
15
  } from '@patternfly/react-core/deprecated';
16
+
13
17
  import { DashboardBreadcrumb } from '@patternfly/react-core/src/demos/examples/DashboardWrapper';
14
18
  import DashboardHeader from '@patternfly/react-core/src/demos/examples/DashboardHeader';
15
19
  import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
@@ -372,17 +376,18 @@ import {
372
376
  NavItem,
373
377
  NavList,
374
378
  Page,
375
- PageHeader,
376
379
  PageSection,
377
380
  PageSectionVariants,
378
381
  SkipToContent,
379
382
  TextContent,
380
- Text,
381
- PageHeaderTools,
382
- PageHeaderToolsGroup,
383
- PageHeaderToolsItem
383
+ Text
384
384
  } from '@patternfly/react-core';
385
+
385
386
  import {
387
+ PageHeader,
388
+ PageHeaderTools,
389
+ PageHeaderToolsGroup,
390
+ PageHeaderToolsItem,
386
391
  Dropdown as DropdownDeprecated,
387
392
  DropdownGroup as DropdownGroupDeprecated,
388
393
  DropdownToggle,
@@ -730,23 +735,23 @@ import {
730
735
  NavItem,
731
736
  NavList,
732
737
  Page,
733
- PageHeader,
734
738
  PageSection,
735
739
  PageSectionVariants,
736
740
  PageSectionTypes,
737
741
  SkipToContent,
738
742
  TextContent,
739
- Text,
740
- PageHeaderTools,
741
- PageHeaderToolsGroup,
742
- PageHeaderToolsItem
743
+ Text
743
744
  } from '@patternfly/react-core';
744
745
  import {
745
746
  Dropdown as DropdownDeprecated,
746
747
  DropdownGroup as DropdownGroupDeprecated,
747
748
  DropdownToggle,
748
749
  DropdownItem as DropdownItemDeprecated,
749
- KebabToggle
750
+ KebabToggle,
751
+ PageHeader,
752
+ PageHeaderTools,
753
+ PageHeaderToolsItem,
754
+ PageHeaderToolsGroup
750
755
  } from '@patternfly/react-core/deprecated';
751
756
  import { DashboardBreadcrumb } from '@patternfly/react-core/src/demos/examples/DashboardWrapper';
752
757
  import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
@@ -1196,23 +1201,23 @@ import {
1196
1201
  NavItem,
1197
1202
  NavList,
1198
1203
  Page,
1199
- PageHeader,
1200
1204
  PageSection,
1201
1205
  PageSectionVariants,
1202
1206
  PageSidebar,
1203
1207
  SkipToContent,
1204
1208
  TextContent,
1205
- Text,
1206
- PageHeaderTools,
1207
- PageHeaderToolsGroup,
1208
- PageHeaderToolsItem
1209
+ Text
1209
1210
  } from '@patternfly/react-core';
1210
1211
  import {
1211
1212
  Dropdown as DropdownDeprecated,
1212
1213
  DropdownGroup as DropdownGroupDeprecated,
1213
1214
  DropdownToggle,
1214
1215
  DropdownItem as DropdownItemDeprecated,
1215
- KebabToggle
1216
+ KebabToggle,
1217
+ PageHeader,
1218
+ PageHeaderTools,
1219
+ PageHeaderToolsItem,
1220
+ PageHeaderToolsGroup
1216
1221
  } from '@patternfly/react-core/deprecated';
1217
1222
  import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
1218
1223
  import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
@@ -1433,8 +1438,6 @@ import {
1433
1438
  Nav,
1434
1439
  NavList,
1435
1440
  NavItem,
1436
- PageHeader,
1437
- PageHeaderTools,
1438
1441
  PageSidebar,
1439
1442
  PageSection,
1440
1443
  PageSectionVariants,
@@ -1443,6 +1446,10 @@ import {
1443
1446
  MenuList,
1444
1447
  MenuItem
1445
1448
  } from '@patternfly/react-core';
1449
+ import {
1450
+ PageHeader,
1451
+ PageHeaderTools,
1452
+ }from '@patternfly/react-core';
1446
1453
  import DashboardHeader from '@patternfly/react-core/src/demos/examples/DashboardHeader';
1447
1454
 
1448
1455
  class VerticalPage extends React.Component {
@@ -1452,7 +1459,7 @@ class VerticalPage extends React.Component {
1452
1459
  isNavOpen: true,
1453
1460
  activeItem: 0
1454
1461
  };
1455
- this.onNavSelect = (result) => {
1462
+ this.onNavSelect = (e, result) => {
1456
1463
  this.setState({
1457
1464
  activeItem: result.itemId
1458
1465
  });
@@ -1493,17 +1500,17 @@ class VerticalPage extends React.Component {
1493
1500
  const { activeItem } = this.state;
1494
1501
 
1495
1502
  const Sidebar = (
1496
- <PageSidebar
1503
+ <PageSidebar style={{"overflow": "visible"}}
1497
1504
  nav={
1498
1505
  <Nav onSelect={this.onNavSelect}>
1499
1506
  <NavList>
1500
- <NavItem id="flyout-link1" to="#flyout-link1" itemId={0} isActive={activeItem === 0}>
1507
+ <NavItem preventDefault id="flyout-link1" to="#flyout-link1" itemId={0} isActive={activeItem === 0}>
1501
1508
  System Panel
1502
1509
  </NavItem>
1503
- <NavItem flyout={curFlyout} id="flyout-link2" to="#flyout-link2" itemId={1} isActive={activeItem === 1}>
1510
+ <NavItem preventDefault flyout={curFlyout} id="flyout-link2" itemId={1} isActive={activeItem === 1}>
1504
1511
  Settings
1505
1512
  </NavItem>
1506
- <NavItem id="flyout-link3" to="#flyout-link3" itemId={2} isActive={activeItem === 2}>
1513
+ <NavItem preventDefault id="flyout-link3" to="#flyout-link3" itemId={2} isActive={activeItem === 2}>
1507
1514
  Authentication
1508
1515
  </NavItem>
1509
1516
  </NavList>
package/src/demos/Page.md CHANGED
@@ -43,14 +43,6 @@ This demonstrates a variety of navigation patterns in the context of a full page
43
43
 
44
44
  ```
45
45
 
46
- ### Sticky section group (using PageHeader)
47
-
48
- This demo is provided becuase PageHeader and PageHeaderTools are still in use; however, going forward Masthead and Toolbar should be used to make headers rather than PageHeader and PageHeaderTools.
49
-
50
- ```ts file='./examples/Page/PageStickySectionGroupUsingPageHeader.tsx' isFullscreen
51
-
52
- ```
53
-
54
46
  ### Sticky section breadcrumb (with breakpoints)
55
47
 
56
48
  ```ts file='./examples/Page/PageStickySectionBreadcrumb.tsx' isFullscreen
@@ -1,267 +0,0 @@
1
- import React from 'react';
2
- import {
3
- Avatar,
4
- Brand,
5
- Breadcrumb,
6
- BreadcrumbItem,
7
- Button,
8
- ButtonVariant,
9
- Card,
10
- CardBody,
11
- Divider,
12
- Gallery,
13
- GalleryItem,
14
- Nav,
15
- NavItem,
16
- NavList,
17
- Page,
18
- PageHeader,
19
- PageHeaderTools,
20
- PageHeaderToolsGroup,
21
- PageHeaderToolsItem,
22
- PageSection,
23
- PageSectionVariants,
24
- PageSidebar,
25
- SkipToContent,
26
- Text,
27
- TextContent
28
- } from '@patternfly/react-core';
29
- import {
30
- Dropdown as DropdownDeprecated,
31
- DropdownGroup as DropdownGroupDeprecated,
32
- DropdownItem as DropdownItemDeprecated,
33
- DropdownToggle,
34
- KebabToggle
35
- } from '@patternfly/react-core/deprecated';
36
- import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
37
- import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
38
- import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
39
- import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
40
- import imgAvatar from '@patternfly/react-core/src/components/Avatar/examples/avatarImg.svg';
41
-
42
- interface NavOnSelectProps {
43
- groupId: number | string;
44
- itemId: number | string;
45
- to: string;
46
- event: React.FormEvent<HTMLInputElement>;
47
- }
48
-
49
- export const PageStickySectionGroupUsingPageHeader: React.FunctionComponent = () => {
50
- const [isDropdownOpen, setIsDropdownOpen] = React.useState(false);
51
- const [isKebabDropdownOpen, setIsKebabDropdownOpen] = React.useState(false);
52
- const [isFullKebabDropdownOpen, setIsFullKebabDropdownOpen] = React.useState(false);
53
- const [activeItem, setActiveItem] = React.useState(1);
54
-
55
- const onNavSelect = (selectedItem: NavOnSelectProps) => {
56
- typeof selectedItem.itemId === 'number' && setActiveItem(selectedItem.itemId);
57
- };
58
-
59
- const onDropdownToggle = (_event: any, isOpen: boolean) => {
60
- setIsDropdownOpen(isOpen);
61
- };
62
-
63
- const onDropdownSelect = () => {
64
- setIsDropdownOpen(!isDropdownOpen);
65
- };
66
-
67
- const onKebabDropdownToggle = (_event: any, isOpen: boolean) => {
68
- setIsKebabDropdownOpen(isOpen);
69
- };
70
-
71
- const onKebabDropdownSelect = () => {
72
- setIsKebabDropdownOpen(!isKebabDropdownOpen);
73
- };
74
-
75
- const onFullKebabDropdownToggle = (_event: any, isOpen: boolean) => {
76
- setIsFullKebabDropdownOpen(isOpen);
77
- };
78
-
79
- const onFullKebabDropdownSelect = () => {
80
- setIsFullKebabDropdownOpen(!isFullKebabDropdownOpen);
81
- };
82
-
83
- const dashboardBreadcrumb = (
84
- <Breadcrumb>
85
- <BreadcrumbItem>Section home</BreadcrumbItem>
86
- <BreadcrumbItem to="#">Section title</BreadcrumbItem>
87
- <BreadcrumbItem to="#">Section title</BreadcrumbItem>
88
- <BreadcrumbItem to="#" isActive>
89
- Section landing
90
- </BreadcrumbItem>
91
- </Breadcrumb>
92
- );
93
-
94
- const kebabDropdownItems = [
95
- <DropdownItemDeprecated key="settings">
96
- <CogIcon /> Settings
97
- </DropdownItemDeprecated>,
98
- <DropdownItemDeprecated key="help">
99
- <HelpIcon /> Help
100
- </DropdownItemDeprecated>
101
- ];
102
-
103
- const fullKebabDropdownItems = [
104
- <DropdownGroupDeprecated key="group 2">
105
- <DropdownItemDeprecated key="group 2 profile">My profile</DropdownItemDeprecated>
106
- <DropdownItemDeprecated key="group 2 user" component="button">
107
- User management
108
- </DropdownItemDeprecated>
109
- <DropdownItemDeprecated key="group 2 logout">Logout</DropdownItemDeprecated>
110
- </DropdownGroupDeprecated>,
111
- <Divider key="divider" />,
112
- <DropdownItemDeprecated key="settings">
113
- <CogIcon /> Settings
114
- </DropdownItemDeprecated>,
115
- <DropdownItemDeprecated key="help">
116
- <HelpIcon /> Help
117
- </DropdownItemDeprecated>
118
- ];
119
-
120
- const userDropdownItems = [
121
- <DropdownGroupDeprecated key="group 2">
122
- <DropdownItemDeprecated key="group 2 profile">My profile</DropdownItemDeprecated>
123
- <DropdownItemDeprecated key="group 2 user" component="button">
124
- User management
125
- </DropdownItemDeprecated>
126
- <DropdownItemDeprecated key="group 2 logout">Logout</DropdownItemDeprecated>
127
- </DropdownGroupDeprecated>
128
- ];
129
-
130
- const pageNav = (
131
- <Nav onSelect={onNavSelect}>
132
- <NavList>
133
- <NavItem itemId={0} isActive={activeItem === 0} to="#system-panel">
134
- System panel
135
- </NavItem>
136
- <NavItem itemId={1} isActive={activeItem === 1} to="#policy">
137
- Policy
138
- </NavItem>
139
- <NavItem itemId={2} isActive={activeItem === 2} to="#auth">
140
- Authentication
141
- </NavItem>
142
- <NavItem itemId={3} isActive={activeItem === 3} to="#network">
143
- Network services
144
- </NavItem>
145
- <NavItem itemId={4} isActive={activeItem === 4} to="#server">
146
- Server
147
- </NavItem>
148
- </NavList>
149
- </Nav>
150
- );
151
-
152
- const sidebar = <PageSidebar nav={pageNav} />;
153
-
154
- const mainContainerId = 'main-content';
155
-
156
- const pageSkipToContent = <SkipToContent href={`#${mainContainerId}`}>Skip to content</SkipToContent>;
157
-
158
- const headerTools = (
159
- <PageHeaderTools>
160
- <PageHeaderToolsGroup>
161
- <PageHeaderToolsItem>
162
- <Button aria-label="Notifications" variant={ButtonVariant.plain} icon={<BellIcon />} />
163
- </PageHeaderToolsItem>
164
- <PageHeaderToolsGroup visibility={{ default: 'hidden', lg: 'visible' }}>
165
- <PageHeaderToolsItem>
166
- <Button aria-label="Settings" variant={ButtonVariant.plain} icon={<CogIcon />} />
167
- </PageHeaderToolsItem>
168
- <PageHeaderToolsItem>
169
- <Button aria-label="Help" variant={ButtonVariant.plain} icon={<QuestionCircleIcon />} />
170
- </PageHeaderToolsItem>
171
- </PageHeaderToolsGroup>
172
- <PageHeaderToolsItem visibility={{ default: 'hidden', md: 'visible', lg: 'hidden' }}>
173
- <DropdownDeprecated
174
- isPlain
175
- position="right"
176
- onSelect={onKebabDropdownSelect}
177
- toggle={<KebabToggle onToggle={onKebabDropdownToggle} />}
178
- isOpen={isKebabDropdownOpen}
179
- dropdownItems={kebabDropdownItems}
180
- />
181
- </PageHeaderToolsItem>
182
- <PageHeaderToolsItem visibility={{ md: 'hidden' }}>
183
- <DropdownDeprecated
184
- isPlain
185
- position="right"
186
- onSelect={onFullKebabDropdownSelect}
187
- toggle={<KebabToggle onToggle={onFullKebabDropdownToggle} />}
188
- isOpen={isFullKebabDropdownOpen}
189
- dropdownItems={fullKebabDropdownItems}
190
- />
191
- </PageHeaderToolsItem>
192
- </PageHeaderToolsGroup>
193
- <PageHeaderToolsItem
194
- visibility={{ default: 'hidden', md: 'visible' }} /** this user dropdown is hidden on mobile sizes */
195
- >
196
- <Avatar src={imgAvatar} alt="Avatar" />
197
- </PageHeaderToolsItem>
198
- <PageHeaderToolsItem
199
- visibility={{ default: 'hidden', md: 'visible' }} /** this user dropdown is hidden on mobile sizes */
200
- >
201
- <DropdownDeprecated
202
- isPlain
203
- position="right"
204
- onSelect={onDropdownSelect}
205
- isOpen={isDropdownOpen}
206
- toggle={<DropdownToggle onToggle={onDropdownToggle}>Ned Username</DropdownToggle>}
207
- dropdownItems={userDropdownItems}
208
- />
209
- </PageHeaderToolsItem>
210
- </PageHeaderTools>
211
- );
212
-
213
- const pageHeader = (
214
- <PageHeader
215
- logo={
216
- <Brand
217
- widths={{ default: '180px', md: '180px', '2xl': '220px' }}
218
- src="/assets/images/logo__pf--reverse--base.png"
219
- alt="Fallback patternFly default logo"
220
- >
221
- <source media="(min-width: 768px)" srcSet="/assets/images/logo__pf--reverse-on-md.svg" />
222
- <source srcSet="/assets/images/logo__pf--reverse--base.svg" />
223
- </Brand>
224
- }
225
- headerTools={headerTools}
226
- showNavToggle
227
- />
228
- );
229
-
230
- return (
231
- <Page
232
- header={pageHeader}
233
- sidebar={sidebar}
234
- isManagedSidebar
235
- skipToContent={pageSkipToContent}
236
- breadcrumb={dashboardBreadcrumb}
237
- mainContainerId={mainContainerId}
238
- isBreadcrumbWidthLimited
239
- isBreadcrumbGrouped
240
- additionalGroupedContent={
241
- <PageSection variant={PageSectionVariants.light} isWidthLimited>
242
- <TextContent>
243
- <Text component="h1">Main title</Text>
244
- <Text component="p">This is a full page demo.</Text>
245
- </TextContent>
246
- </PageSection>
247
- }
248
- groupProps={{
249
- stickyOnBreakpoint: {
250
- default: 'top'
251
- }
252
- }}
253
- >
254
- <PageSection>
255
- <Gallery hasGutter>
256
- {Array.apply(0, Array(50)).map((x, i) => (
257
- <GalleryItem key={i}>
258
- <Card>
259
- <CardBody>This is a card</CardBody>
260
- </Card>
261
- </GalleryItem>
262
- ))}
263
- </Gallery>
264
- </PageSection>
265
- </Page>
266
- );
267
- };
@@ -3,8 +3,8 @@ import * as React from 'react';
3
3
  import styles from '@patternfly/react-styles/css/components/Page/page';
4
4
  import { css } from '@patternfly/react-styles';
5
5
  import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
6
- import { Button, ButtonVariant } from '../../components/Button';
7
- import { PageContextConsumer, PageContextProps } from './PageContext';
6
+ import { Button, ButtonVariant } from '../../../components/Button';
7
+ import { PageContextConsumer, PageContextProps } from '../../../components/Page/PageContext';
8
8
 
9
9
  export interface PageHeaderProps extends React.HTMLProps<HTMLDivElement> {
10
10
  /** Additional classes added to the page header */
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import styles from '@patternfly/react-styles/css/components/Page/page';
3
3
  import { css } from '@patternfly/react-styles';
4
- import { formatBreakpointMods } from '../../helpers/util';
5
- import { PageContext } from './PageContext';
4
+ import { formatBreakpointMods } from '../../../helpers/util';
5
+ import { PageContext } from '../../../components/Page/PageContext';
6
6
 
7
7
  export interface PageHeaderToolsGroupProps extends React.HTMLProps<HTMLDivElement> {
8
8
  /** Content rendered in the page header tools group */
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import styles from '@patternfly/react-styles/css/components/Page/page';
3
3
  import { css } from '@patternfly/react-styles';
4
- import { formatBreakpointMods } from '../../helpers/util';
5
- import { PageContext } from './PageContext';
4
+ import { formatBreakpointMods } from '../../../helpers/util';
5
+ import { PageContext } from '../../../components/Page/PageContext';
6
6
 
7
7
  export interface PageHeaderToolsItemProps extends React.HTMLProps<HTMLDivElement> {
8
8
  /** Content rendered in page header tools item. */
@@ -0,0 +1,15 @@
1
+ ---
2
+ id: Page
3
+ section: components
4
+ cssPrefix: pf-c-page
5
+ propComponents: ['PageHeader','PageHeaderTools','PageHeaderToolsGroup','PageHeaderToolsItem']
6
+ ---
7
+
8
+ ## Page header examples
9
+
10
+ ### Vertical navigation
11
+
12
+ This example shows the deprecated implementation of a page's vertical navigation. Our updated recommendation advises you to use a masthead and toolbar to make headers, rather than `<PageHeader>` and `<PageHeaderTools>` as shown in the following example.
13
+
14
+ ```ts file="./PageVerticalNavUsingPageHeaderComponent.tsx"
15
+ ```
@@ -1,12 +1,14 @@
1
1
  import React from 'react';
2
2
  import {
3
3
  Page,
4
- PageHeader,
5
- PageHeaderTools,
6
4
  PageSidebar,
7
5
  PageSection,
8
6
  PageSectionVariants
9
7
  } from '@patternfly/react-core';
8
+ import {
9
+ PageHeader,
10
+ PageHeaderTools
11
+ } from '@patternfly/react-core/deprecated';
10
12
 
11
13
  export const PageVerticalNavUsingPageHeaderComponent: React.FunctionComponent = () => {
12
14
  const [isNavOpen, setIsNavOpen] = React.useState(true);
@@ -0,0 +1,4 @@
1
+ export * from './PageHeader';
2
+ export * from './PageHeaderTools';
3
+ export * from './PageHeaderToolsGroup';
4
+ export * from './PageHeaderToolsItem';
@@ -2,8 +2,6 @@ import * as React from 'react';
2
2
  import { render } from '@testing-library/react';
3
3
  import { PageHeader } from '../PageHeader';
4
4
 
5
- jest.mock('../Page');
6
-
7
5
  test('Check page vertical layout example against snapshot', () => {
8
6
  const Header = <PageHeader logo="Logo" headerTools="PageHeaderTools | Avatar" onNavToggle={() => undefined} />;
9
7
  const { asFragment } = render(Header);
@@ -3,11 +3,11 @@
3
3
  */
4
4
  import * as React from 'react';
5
5
  import { render } from '@testing-library/react';
6
- import { PageHeaderTools } from '../../PageHeaderTools';
6
+ import { PageHeaderTools } from '../PageHeaderTools';
7
7
  // any missing imports can usually be resolved by adding them here
8
8
  import {} from '../..';
9
9
 
10
10
  it('PageHeaderTools should match snapshot (auto-generated)', () => {
11
- const { asFragment } = render(<PageHeaderTools children={<div>ReactNode</div>} className={'string'} />);
11
+ const { asFragment } = render(<PageHeaderTools className={'string'}><div>ReactNode</div></PageHeaderTools>);
12
12
  expect(asFragment()).toMatchSnapshot();
13
13
  });