@patternfly/react-core 6.0.0-alpha.12 → 6.0.0-alpha.14

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 (216) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/components/package.json +1 -1
  3. package/deprecated/package.json +1 -1
  4. package/dist/dynamic/components/AboutModal/package.json +1 -1
  5. package/dist/dynamic/components/Accordion/package.json +1 -1
  6. package/dist/dynamic/components/ActionList/package.json +1 -1
  7. package/dist/dynamic/components/Alert/package.json +1 -1
  8. package/dist/dynamic/components/Avatar/package.json +1 -1
  9. package/dist/dynamic/components/BackToTop/package.json +1 -1
  10. package/dist/dynamic/components/Backdrop/package.json +1 -1
  11. package/dist/dynamic/components/BackgroundImage/package.json +1 -1
  12. package/dist/dynamic/components/Badge/package.json +1 -1
  13. package/dist/dynamic/components/Banner/package.json +1 -1
  14. package/dist/dynamic/components/Brand/package.json +1 -1
  15. package/dist/dynamic/components/Breadcrumb/package.json +1 -1
  16. package/dist/dynamic/components/Button/package.json +1 -1
  17. package/dist/dynamic/components/CalendarMonth/package.json +1 -1
  18. package/dist/dynamic/components/Card/package.json +1 -1
  19. package/dist/dynamic/components/Checkbox/package.json +1 -1
  20. package/dist/dynamic/components/Chip/package.json +1 -1
  21. package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
  22. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  23. package/dist/dynamic/components/DataList/package.json +1 -1
  24. package/dist/dynamic/components/DatePicker/package.json +1 -1
  25. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  26. package/dist/dynamic/components/Divider/package.json +1 -1
  27. package/dist/dynamic/components/DragDrop/package.json +1 -1
  28. package/dist/dynamic/components/Drawer/package.json +1 -1
  29. package/dist/dynamic/components/Dropdown/package.json +1 -1
  30. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  31. package/dist/dynamic/components/EmptyState/package.json +1 -1
  32. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  33. package/dist/dynamic/components/FileUpload/package.json +1 -1
  34. package/dist/dynamic/components/Form/package.json +1 -1
  35. package/dist/dynamic/components/FormSelect/package.json +1 -1
  36. package/dist/dynamic/components/HelperText/package.json +1 -1
  37. package/dist/dynamic/components/Hint/package.json +1 -1
  38. package/dist/dynamic/components/Icon/package.json +1 -1
  39. package/dist/dynamic/components/InputGroup/package.json +1 -1
  40. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  41. package/dist/dynamic/components/Label/package.json +1 -1
  42. package/dist/dynamic/components/List/package.json +1 -1
  43. package/dist/dynamic/components/LoginPage/package.json +1 -1
  44. package/dist/dynamic/components/Masthead/package.json +1 -1
  45. package/dist/dynamic/components/Menu/package.json +1 -1
  46. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  47. package/dist/dynamic/components/Modal/package.json +1 -1
  48. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  49. package/dist/dynamic/components/Nav/package.json +1 -1
  50. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  51. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  52. package/dist/dynamic/components/NumberInput/package.json +1 -1
  53. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  54. package/dist/dynamic/components/Page/package.json +1 -1
  55. package/dist/dynamic/components/Pagination/package.json +1 -1
  56. package/dist/dynamic/components/Panel/package.json +1 -1
  57. package/dist/dynamic/components/Popover/package.json +1 -1
  58. package/dist/dynamic/components/Progress/package.json +1 -1
  59. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  60. package/dist/dynamic/components/Radio/package.json +1 -1
  61. package/dist/dynamic/components/SearchInput/package.json +1 -1
  62. package/dist/dynamic/components/Select/package.json +1 -1
  63. package/dist/dynamic/components/Sidebar/package.json +1 -1
  64. package/dist/dynamic/components/SimpleList/package.json +1 -1
  65. package/dist/dynamic/components/Skeleton/package.json +1 -1
  66. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  67. package/dist/dynamic/components/Slider/package.json +1 -1
  68. package/dist/dynamic/components/Spinner/package.json +1 -1
  69. package/dist/dynamic/components/Switch/package.json +1 -1
  70. package/dist/dynamic/components/Tabs/package.json +1 -1
  71. package/dist/dynamic/components/Text/package.json +1 -1
  72. package/dist/dynamic/components/TextArea/package.json +1 -1
  73. package/dist/dynamic/components/TextInput/package.json +1 -1
  74. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  75. package/dist/dynamic/components/Tile/package.json +1 -1
  76. package/dist/dynamic/components/TimePicker/package.json +1 -1
  77. package/dist/dynamic/components/Timestamp/package.json +1 -1
  78. package/dist/dynamic/components/Title/package.json +1 -1
  79. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  80. package/dist/dynamic/components/Toolbar/package.json +1 -1
  81. package/dist/dynamic/components/Tooltip/package.json +1 -1
  82. package/dist/dynamic/components/TreeView/package.json +1 -1
  83. package/dist/dynamic/components/Truncate/package.json +1 -1
  84. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  85. package/dist/dynamic/components/Wizard/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/ApplicationLauncher/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/ContextSelector/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Dropdown/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/OptionsMenu/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/PageHeader/package.json +1 -1
  91. package/dist/dynamic/deprecated/components/Select/package.json +1 -1
  92. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  93. package/dist/dynamic/deprecated/components/package.json +1 -1
  94. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  95. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  96. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  97. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  98. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  99. package/dist/dynamic/helpers/constants/package.json +1 -1
  100. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  101. package/dist/dynamic/helpers/favorites/package.json +1 -1
  102. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  103. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  104. package/dist/dynamic/helpers/package.json +1 -1
  105. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  106. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  107. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  108. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  109. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  110. package/dist/dynamic/helpers/util/package.json +1 -1
  111. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  112. package/dist/dynamic/layouts/Flex/package.json +1 -1
  113. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  114. package/dist/dynamic/layouts/Grid/package.json +1 -1
  115. package/dist/dynamic/layouts/Level/package.json +1 -1
  116. package/dist/dynamic/layouts/Split/package.json +1 -1
  117. package/dist/dynamic/layouts/Stack/package.json +1 -1
  118. package/dist/dynamic/next/components/package.json +1 -1
  119. package/dist/esm/components/Avatar/Avatar.d.ts +5 -3
  120. package/dist/esm/components/Avatar/Avatar.d.ts.map +1 -1
  121. package/dist/esm/components/Avatar/Avatar.js +2 -2
  122. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  123. package/dist/esm/components/EmptyState/EmptyState.d.ts +20 -1
  124. package/dist/esm/components/EmptyState/EmptyState.d.ts.map +1 -1
  125. package/dist/esm/components/EmptyState/EmptyState.js +17 -3
  126. package/dist/esm/components/EmptyState/EmptyState.js.map +1 -1
  127. package/dist/esm/components/EmptyState/EmptyStateHeader.d.ts +11 -6
  128. package/dist/esm/components/EmptyState/EmptyStateHeader.d.ts.map +1 -1
  129. package/dist/esm/components/EmptyState/EmptyStateHeader.js +14 -5
  130. package/dist/esm/components/EmptyState/EmptyStateHeader.js.map +1 -1
  131. package/dist/esm/components/EmptyState/EmptyStateIcon.d.ts +1 -5
  132. package/dist/esm/components/EmptyState/EmptyStateIcon.d.ts.map +1 -1
  133. package/dist/esm/components/EmptyState/EmptyStateIcon.js +2 -3
  134. package/dist/esm/components/EmptyState/EmptyStateIcon.js.map +1 -1
  135. package/dist/esm/components/Panel/Panel.d.ts +1 -1
  136. package/dist/esm/components/Panel/Panel.d.ts.map +1 -1
  137. package/dist/esm/components/Panel/Panel.js +1 -1
  138. package/dist/esm/components/Panel/Panel.js.map +1 -1
  139. package/dist/esm/helpers/constants.d.ts +8 -0
  140. package/dist/esm/helpers/constants.d.ts.map +1 -1
  141. package/dist/esm/helpers/constants.js +12 -0
  142. package/dist/esm/helpers/constants.js.map +1 -1
  143. package/dist/js/components/Avatar/Avatar.d.ts +5 -3
  144. package/dist/js/components/Avatar/Avatar.d.ts.map +1 -1
  145. package/dist/js/components/Avatar/Avatar.js +2 -2
  146. package/dist/js/components/Avatar/Avatar.js.map +1 -1
  147. package/dist/js/components/EmptyState/EmptyState.d.ts +20 -1
  148. package/dist/js/components/EmptyState/EmptyState.d.ts.map +1 -1
  149. package/dist/js/components/EmptyState/EmptyState.js +18 -4
  150. package/dist/js/components/EmptyState/EmptyState.js.map +1 -1
  151. package/dist/js/components/EmptyState/EmptyStateHeader.d.ts +11 -6
  152. package/dist/js/components/EmptyState/EmptyStateHeader.d.ts.map +1 -1
  153. package/dist/js/components/EmptyState/EmptyStateHeader.js +15 -6
  154. package/dist/js/components/EmptyState/EmptyStateHeader.js.map +1 -1
  155. package/dist/js/components/EmptyState/EmptyStateIcon.d.ts +1 -5
  156. package/dist/js/components/EmptyState/EmptyStateIcon.d.ts.map +1 -1
  157. package/dist/js/components/EmptyState/EmptyStateIcon.js +2 -3
  158. package/dist/js/components/EmptyState/EmptyStateIcon.js.map +1 -1
  159. package/dist/js/components/Panel/Panel.d.ts +1 -1
  160. package/dist/js/components/Panel/Panel.d.ts.map +1 -1
  161. package/dist/js/components/Panel/Panel.js +1 -1
  162. package/dist/js/components/Panel/Panel.js.map +1 -1
  163. package/dist/js/helpers/constants.d.ts +8 -0
  164. package/dist/js/helpers/constants.d.ts.map +1 -1
  165. package/dist/js/helpers/constants.js +13 -1
  166. package/dist/js/helpers/constants.js.map +1 -1
  167. package/dist/umd/react-core.min.js +3 -3
  168. package/helpers/package.json +1 -1
  169. package/layouts/package.json +1 -1
  170. package/next/package.json +1 -1
  171. package/package.json +2 -2
  172. package/src/components/Avatar/Avatar.tsx +13 -5
  173. package/src/components/Avatar/__tests__/Avatar.test.tsx +4 -12
  174. package/src/components/Avatar/examples/Avatar.md +5 -50
  175. package/src/components/Avatar/examples/AvatarBasic.tsx +5 -0
  176. package/src/components/Avatar/examples/AvatarBordered.tsx +5 -0
  177. package/src/components/Avatar/examples/AvatarSizeVariations.tsx +21 -0
  178. package/src/components/DualListSelector/examples/DualListSelectorComposable.tsx +1 -4
  179. package/src/components/DualListSelector/examples/DualListSelectorComposableTree.tsx +2 -9
  180. package/src/components/EmptyState/EmptyState.tsx +57 -17
  181. package/src/components/EmptyState/EmptyStateHeader.tsx +20 -18
  182. package/src/components/EmptyState/EmptyStateIcon.tsx +3 -13
  183. package/src/components/EmptyState/__tests__/EmptyState.test.tsx +6 -21
  184. package/src/components/EmptyState/__tests__/Generated/EmptyStateIcon.test.tsx +0 -4
  185. package/src/components/EmptyState/__tests__/Generated/__snapshots__/EmptyStateIcon.test.tsx.snap +0 -8
  186. package/src/components/EmptyState/__tests__/__snapshots__/EmptyState.test.tsx.snap +9 -0
  187. package/src/components/EmptyState/examples/EmptyState.md +6 -8
  188. package/src/components/EmptyState/examples/EmptyStateBasic.tsx +2 -11
  189. package/src/components/EmptyState/examples/EmptyStateExtraLarge.tsx +2 -5
  190. package/src/components/EmptyState/examples/EmptyStateExtraSmall.tsx +3 -7
  191. package/src/components/EmptyState/examples/EmptyStateLarge.tsx +2 -5
  192. package/src/components/EmptyState/examples/EmptyStateNoMatchFound.tsx +2 -11
  193. package/src/components/EmptyState/examples/EmptyStateSmall.tsx +2 -5
  194. package/src/components/EmptyState/examples/EmptyStateSpinner.tsx +2 -4
  195. package/src/components/EmptyState/examples/EmptyStateWithStatus.tsx +61 -0
  196. package/src/components/NotificationDrawer/examples/NotificationDrawerGroups.tsx +6 -8
  197. package/src/components/NotificationDrawer/examples/NotificationDrawerLightweight.tsx +7 -9
  198. package/src/components/Panel/Panel.tsx +2 -3
  199. package/src/components/Panel/__tests__/Panel.test.tsx +5 -0
  200. package/src/components/Panel/examples/Panel.md +15 -0
  201. package/src/components/Wizard/examples/WizardValidateOnButtonPress.tsx +6 -8
  202. package/src/components/Wizard/examples/WizardWithSubmitProgress.tsx +6 -8
  203. package/src/demos/CardView/examples/CardView.tsx +6 -8
  204. package/src/demos/Filters/examples/FilterAttributeSearch.tsx +2 -5
  205. package/src/demos/Filters/examples/FilterFaceted.tsx +1 -4
  206. package/src/demos/Filters/examples/FilterMixedSelectGroup.tsx +1 -4
  207. package/src/demos/Filters/examples/FilterSameSelectGroup.tsx +1 -4
  208. package/src/demos/Filters/examples/FilterSearchInput.tsx +1 -4
  209. package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +1 -8
  210. package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +7 -14
  211. package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +6 -8
  212. package/src/deprecated/components/Wizard/examples/WizardFinished.tsx +6 -8
  213. package/src/deprecated/components/Wizard/examples/WizardValidateOnButtonPress.tsx +7 -9
  214. package/src/helpers/constants.ts +14 -0
  215. package/src/components/Avatar/examples/example.css +0 -3
  216. package/src/components/EmptyState/examples/EmptyStateCustomIconColor.tsx +0 -19
@@ -5,15 +5,12 @@ import {
5
5
  EmptyStateVariant,
6
6
  EmptyStateBody,
7
7
  EmptyStateActions,
8
- EmptyStateHeader,
9
- EmptyStateFooter,
10
- EmptyStateIcon
8
+ EmptyStateFooter
11
9
  } from '@patternfly/react-core';
12
10
  import CubesIcon from '@patternfly/react-icons/dist/esm/icons/cubes-icon';
13
11
 
14
12
  export const EmptyStateExtraLarge: React.FunctionComponent = () => (
15
- <EmptyState variant={EmptyStateVariant.xl}>
16
- <EmptyStateHeader titleText="Empty state" headingLevel="h4" icon={<EmptyStateIcon icon={CubesIcon} />} />
13
+ <EmptyState variant={EmptyStateVariant.xl} titleText="Empty state" headingLevel="h4" icon={CubesIcon}>
17
14
  <EmptyStateBody>
18
15
  This represents the empty state pattern in PatternFly. Hopefully it's simple enough to use but flexible enough to
19
16
  meet a variety of needs.
@@ -5,17 +5,13 @@ import {
5
5
  EmptyStateVariant,
6
6
  EmptyStateBody,
7
7
  EmptyStateActions,
8
- EmptyStateHeader,
9
8
  EmptyStateFooter
10
9
  } from '@patternfly/react-core';
10
+ import CubesIcon from '@patternfly/react-icons/dist/esm/icons/cubes-icon';
11
11
 
12
12
  export const EmptyStateExtraSmall: React.FunctionComponent = () => (
13
- <EmptyState variant={EmptyStateVariant.xs}>
14
- <EmptyStateHeader titleText="Empty state" headingLevel="h4" />
15
- <EmptyStateBody>
16
- This represents the empty state pattern in PatternFly. Hopefully it's simple enough to use but flexible enough to
17
- meet a variety of needs.
18
- </EmptyStateBody>
13
+ <EmptyState variant={EmptyStateVariant.xs} titleText="Empty state" headingLevel="h4" icon={CubesIcon}>
14
+ <EmptyStateBody>This represents an the empty state pattern in PatternFly. The icon is optional.</EmptyStateBody>
19
15
  <EmptyStateFooter>
20
16
  <EmptyStateActions>
21
17
  <Button variant="link">Multiple</Button>
@@ -5,15 +5,12 @@ import {
5
5
  EmptyStateVariant,
6
6
  EmptyStateBody,
7
7
  EmptyStateActions,
8
- EmptyStateHeader,
9
- EmptyStateFooter,
10
- EmptyStateIcon
8
+ EmptyStateFooter
11
9
  } from '@patternfly/react-core';
12
10
  import CubesIcon from '@patternfly/react-icons/dist/esm/icons/cubes-icon';
13
11
 
14
12
  export const EmptyStateLarge: React.FunctionComponent = () => (
15
- <EmptyState variant={EmptyStateVariant.lg}>
16
- <EmptyStateHeader titleText="Empty state" headingLevel="h4" icon={<EmptyStateIcon icon={CubesIcon} />} />
13
+ <EmptyState variant={EmptyStateVariant.lg} titleText="Empty state" headingLevel="h4" icon={CubesIcon}>
17
14
  <EmptyStateBody>
18
15
  This represents the empty state pattern in PatternFly. Hopefully it's simple enough to use but flexible enough to
19
16
  meet a variety of needs.
@@ -1,18 +1,9 @@
1
1
  import React from 'react';
2
- import {
3
- Button,
4
- EmptyState,
5
- EmptyStateBody,
6
- EmptyStateHeader,
7
- EmptyStateFooter,
8
- EmptyStateActions,
9
- EmptyStateIcon
10
- } from '@patternfly/react-core';
2
+ import { Button, EmptyState, EmptyStateBody, EmptyStateFooter, EmptyStateActions } from '@patternfly/react-core';
11
3
  import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
12
4
 
13
5
  export const EmptyStateNoMatchFound: React.FunctionComponent = () => (
14
- <EmptyState>
15
- <EmptyStateHeader titleText="No results found" headingLevel="h4" icon={<EmptyStateIcon icon={SearchIcon} />} />
6
+ <EmptyState titleText="No results found" headingLevel="h4" icon={SearchIcon}>
16
7
  <EmptyStateBody>No results match the filter criteria. Clear all filters and try again.</EmptyStateBody>
17
8
  <EmptyStateFooter>
18
9
  <EmptyStateActions>
@@ -5,15 +5,12 @@ import {
5
5
  EmptyStateVariant,
6
6
  EmptyStateBody,
7
7
  EmptyStateActions,
8
- EmptyStateHeader,
9
- EmptyStateFooter,
10
- EmptyStateIcon
8
+ EmptyStateFooter
11
9
  } from '@patternfly/react-core';
12
10
  import CubesIcon from '@patternfly/react-icons/dist/esm/icons/cubes-icon';
13
11
 
14
12
  export const EmptyStateSmall: React.FunctionComponent = () => (
15
- <EmptyState variant={EmptyStateVariant.sm}>
16
- <EmptyStateHeader titleText="Empty state" headingLevel="h4" icon={<EmptyStateIcon icon={CubesIcon} />} />
13
+ <EmptyState variant={EmptyStateVariant.sm} titleText="Empty state" headingLevel="h4" icon={CubesIcon}>
17
14
  <EmptyStateBody>
18
15
  This represents the empty state pattern in PatternFly. Hopefully it's simple enough to use but flexible enough to
19
16
  meet a variety of needs.
@@ -1,8 +1,6 @@
1
1
  import React from 'react';
2
- import { EmptyState, EmptyStateHeader, EmptyStateIcon, Spinner } from '@patternfly/react-core';
2
+ import { EmptyState, Spinner } from '@patternfly/react-core';
3
3
 
4
4
  export const EmptyStateSpinner: React.FunctionComponent = () => (
5
- <EmptyState>
6
- <EmptyStateHeader titleText="Loading" headingLevel="h4" icon={<EmptyStateIcon icon={Spinner} />} />
7
- </EmptyState>
5
+ <EmptyState titleText="Loading" headingLevel="h4" icon={Spinner} />
8
6
  );
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import {
3
+ EmptyState,
4
+ EmptyStateBody,
5
+ EmptyStateFooter,
6
+ EmptyStateActions,
7
+ EmptyStateStatus,
8
+ Button
9
+ } from '@patternfly/react-core';
10
+
11
+ export const EmptyStateWithStatus: React.FunctionComponent = () => {
12
+ const [status, setStatus] = React.useState<EmptyStateStatus>(EmptyStateStatus.success);
13
+
14
+ const toggleStatus = () => {
15
+ interface StatusToggleMap {
16
+ [status: string]: EmptyStateStatus;
17
+ }
18
+
19
+ const statusToggleMap: StatusToggleMap = {
20
+ success: EmptyStateStatus.danger,
21
+ danger: EmptyStateStatus.warning,
22
+ warning: EmptyStateStatus.info,
23
+ info: EmptyStateStatus.custom,
24
+ custom: EmptyStateStatus.success
25
+ };
26
+
27
+ setStatus((prevStatus: EmptyStateStatus) => statusToggleMap[prevStatus]);
28
+ };
29
+
30
+ const titleMap = {
31
+ success: "You're all set",
32
+ danger: "You're not set",
33
+ warning: "You're probably not set",
34
+ info: 'You might be set',
35
+ custom: "You're custom"
36
+ };
37
+
38
+ return (
39
+ <EmptyState status={status} titleText={titleMap[status]} headingLevel="h4">
40
+ <EmptyStateBody>
41
+ This represents an the empty state pattern in PatternFly. Hopefully it's simple enough to use but flexible
42
+ enough to meet a variety of needs.
43
+ </EmptyStateBody>
44
+ <EmptyStateFooter>
45
+ <EmptyStateActions>
46
+ <Button variant="primary" onClick={toggleStatus}>
47
+ Toggle status
48
+ </Button>
49
+ </EmptyStateActions>
50
+ <EmptyStateActions>
51
+ <Button variant="link">Multiple</Button>
52
+ <Button variant="link">Action Buttons</Button>
53
+ <Button variant="link">Can</Button>
54
+ <Button variant="link">Go here</Button>
55
+ <Button variant="link">In the secondary</Button>
56
+ <Button variant="link">Action area</Button>
57
+ </EmptyStateActions>
58
+ </EmptyStateFooter>
59
+ </EmptyState>
60
+ );
61
+ };
@@ -3,7 +3,6 @@ import {
3
3
  Button,
4
4
  EmptyState,
5
5
  EmptyStateBody,
6
- EmptyStateHeader,
7
6
  EmptyStateFooter,
8
7
  NotificationDrawer,
9
8
  NotificationDrawerBody,
@@ -16,7 +15,6 @@ import {
16
15
  NotificationDrawerListItemHeader,
17
16
  EmptyStateVariant,
18
17
  EmptyStateActions,
19
- EmptyStateIcon,
20
18
  Dropdown,
21
19
  DropdownList,
22
20
  DropdownItem,
@@ -377,12 +375,12 @@ export const NotificationDrawerGroups: React.FunctionComponent = () => {
377
375
  truncateTitle={1}
378
376
  >
379
377
  <NotificationDrawerList isHidden={!thirdGroupExpanded} aria-label="Notifications in the third group">
380
- <EmptyState variant={EmptyStateVariant.full}>
381
- <EmptyStateHeader
382
- headingLevel="h2"
383
- titleText="No alerts found"
384
- icon={<EmptyStateIcon icon={SearchIcon} />}
385
- />
378
+ <EmptyState
379
+ headingLevel="h2"
380
+ titleText="No alerts found"
381
+ icon={SearchIcon}
382
+ variant={EmptyStateVariant.full}
383
+ >
386
384
  <EmptyStateBody>
387
385
  There are currently no critical alerts firing. There may be firing alerts of other severities or
388
386
  silenced critical alerts however.
@@ -4,7 +4,6 @@ import {
4
4
  EmptyState,
5
5
  EmptyStateBody,
6
6
  EmptyStateFooter,
7
- EmptyStateHeader,
8
7
  EmptyStateVariant,
9
8
  NotificationDrawer,
10
9
  NotificationDrawerBody,
@@ -15,8 +14,7 @@ import {
15
14
  NotificationDrawerListItem,
16
15
  NotificationDrawerListItemBody,
17
16
  NotificationDrawerListItemHeader,
18
- EmptyStateActions,
19
- EmptyStateIcon
17
+ EmptyStateActions
20
18
  } from '@patternfly/react-core';
21
19
  import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
22
20
 
@@ -173,12 +171,12 @@ export const NotificationDrawerLightweight: React.FunctionComponent = () => {
173
171
  isHidden={!thirdGroupExpanded}
174
172
  aria-label="Notifications in the third lightweight group"
175
173
  >
176
- <EmptyState variant={EmptyStateVariant.full}>
177
- <EmptyStateHeader
178
- headingLevel="h2"
179
- titleText="No alerts found"
180
- icon={<EmptyStateIcon icon={SearchIcon} />}
181
- />
174
+ <EmptyState
175
+ headingLevel="h2"
176
+ titleText="No alerts found"
177
+ icon={SearchIcon}
178
+ variant={EmptyStateVariant.full}
179
+ >
182
180
  <EmptyStateBody>
183
181
  There are currently no critical alerts firing. There may be firing alerts of other severities or
184
182
  silenced critical alerts however.
@@ -8,7 +8,7 @@ export interface PanelProps extends React.HTMLProps<HTMLDivElement> {
8
8
  /** Class to add to outer div */
9
9
  className?: string;
10
10
  /** Adds panel variant styles */
11
- variant?: 'raised' | 'bordered';
11
+ variant?: 'raised' | 'bordered' | 'secondary';
12
12
  /** Flag to add scrollable styling to the panel */
13
13
  isScrollable?: boolean;
14
14
  /** @hide Forwarded ref */
@@ -26,8 +26,7 @@ const PanelBase: React.FunctionComponent<PanelProps> = ({
26
26
  <div
27
27
  className={css(
28
28
  styles.panel,
29
- variant === 'raised' && styles.modifiers.raised,
30
- variant === 'bordered' && styles.modifiers.bordered,
29
+ variant && styles.modifiers[variant],
31
30
  isScrollable && styles.modifiers.scrollable,
32
31
  className
33
32
  )}
@@ -46,6 +46,11 @@ test(`Renders with class name ${styles.modifiers.bordered} when variant is borde
46
46
  expect(screen.getByText('Test')).toHaveClass(styles.modifiers.bordered);
47
47
  });
48
48
 
49
+ test(`Renders with class name ${styles.modifiers.secondary} when variant is secondary`, () => {
50
+ render(<Panel variant="secondary">Test</Panel>);
51
+ expect(screen.getByText('Test')).toHaveClass(styles.modifiers.secondary);
52
+ });
53
+
49
54
  test(`Renders with class name ${styles.modifiers.scrollable} when isScrollable is true`, () => {
50
55
  render(<Panel isScrollable>Test</Panel>);
51
56
  expect(screen.getByText('Test')).toHaveClass(styles.modifiers.scrollable);
@@ -116,6 +116,21 @@ const BorderedPanel = () => (
116
116
  );
117
117
  ```
118
118
 
119
+ ### Secondary variant
120
+
121
+ ```js
122
+ import React from 'react';
123
+ import { Panel, PanelMain, PanelMainBody } from '@patternfly/react-core';
124
+
125
+ const PanelSecondaryVariant = () => (
126
+ <Panel variant="secondary">
127
+ <PanelMain>
128
+ <PanelMainBody>Main content</PanelMainBody>
129
+ </PanelMain>
130
+ </Panel>
131
+ );
132
+ ```
133
+
119
134
  ### Scrollable
120
135
 
121
136
  ```js
@@ -4,11 +4,9 @@ import {
4
4
  Button,
5
5
  Alert,
6
6
  EmptyState,
7
- EmptyStateHeader,
8
7
  EmptyStateFooter,
9
8
  EmptyStateBody,
10
9
  EmptyStateActions,
11
- EmptyStateIcon,
12
10
  Progress,
13
11
  Form,
14
12
  FormGroup,
@@ -47,12 +45,12 @@ const ValidationProgress: React.FunctionComponent<ValidationProgressProps> = ({
47
45
 
48
46
  return (
49
47
  <div className={layout.bullseye}>
50
- <EmptyState variant="lg">
51
- <EmptyStateHeader
52
- headingLevel="h4"
53
- titleText={percentValidated === 100 ? 'Validation complete' : 'Validating credentials'}
54
- icon={<EmptyStateIcon icon={CogsIcon} />}
55
- />
48
+ <EmptyState
49
+ headingLevel="h4"
50
+ titleText={percentValidated === 100 ? 'Validation complete' : 'Validating credentials'}
51
+ icon={CogsIcon}
52
+ variant="lg"
53
+ >
56
54
  <EmptyStateBody>
57
55
  <Progress value={percentValidated} measureLocation="outside" aria-label="Wizard validation progress" />
58
56
  </EmptyStateBody>
@@ -1,11 +1,9 @@
1
1
  import React from 'react';
2
2
  import {
3
3
  EmptyState,
4
- EmptyStateHeader,
5
4
  EmptyStateFooter,
6
5
  EmptyStateBody,
7
6
  EmptyStateActions,
8
- EmptyStateIcon,
9
7
  Progress,
10
8
  Button,
11
9
  Wizard,
@@ -37,12 +35,12 @@ const ValidationProgress: React.FunctionComponent<ValidationProgressProps> = ({
37
35
 
38
36
  return (
39
37
  <div className={layout.bullseye}>
40
- <EmptyState variant="lg">
41
- <EmptyStateHeader
42
- headingLevel="h4"
43
- titleText={percentValidated === 100 ? 'Validation complete' : 'Validating credentials'}
44
- icon={<EmptyStateIcon icon={CogsIcon} />}
45
- />
38
+ <EmptyState
39
+ headingLevel="h4"
40
+ titleText={percentValidated === 100 ? 'Validation complete' : 'Validating credentials'}
41
+ icon={CogsIcon}
42
+ variant="lg"
43
+ >
46
44
  <EmptyStateBody>
47
45
  <Progress value={percentValidated} measureLocation="outside" aria-label="Wizard validation progress" />
48
46
  </EmptyStateBody>
@@ -12,8 +12,6 @@ import {
12
12
  DropdownItem,
13
13
  DropdownList,
14
14
  EmptyState,
15
- EmptyStateHeader,
16
- EmptyStateIcon,
17
15
  EmptyStateFooter,
18
16
  EmptyStateVariant,
19
17
  EmptyStateActions,
@@ -484,12 +482,12 @@ export const CardViewBasic: React.FunctionComponent = () => {
484
482
  <Gallery hasGutter aria-label="Selectable card container">
485
483
  <Card isCompact>
486
484
  <Bullseye>
487
- <EmptyState variant={EmptyStateVariant.xs}>
488
- <EmptyStateHeader
489
- headingLevel="h2"
490
- titleText="Add a new card to your page"
491
- icon={<EmptyStateIcon icon={PlusCircleIcon} />}
492
- />
485
+ <EmptyState
486
+ headingLevel="h2"
487
+ titleText="Add a new card to your page"
488
+ icon={PlusCircleIcon}
489
+ variant={EmptyStateVariant.xs}
490
+ >
493
491
  <EmptyStateFooter>
494
492
  <EmptyStateActions>
495
493
  <Button variant="link">Add card</Button>
@@ -13,7 +13,6 @@ import {
13
13
  Popper,
14
14
  Pagination,
15
15
  EmptyState,
16
- EmptyStateHeader,
17
16
  EmptyStateFooter,
18
17
  EmptyStateBody,
19
18
  Button,
@@ -22,8 +21,7 @@ import {
22
21
  ToolbarGroup,
23
22
  ToolbarFilter,
24
23
  ToolbarToggleGroup,
25
- EmptyStateActions,
26
- EmptyStateIcon
24
+ EmptyStateActions
27
25
  } from '@patternfly/react-core';
28
26
  import { Table, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
29
27
  import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
@@ -625,8 +623,7 @@ export const FilterAttributeSearch: React.FunctionComponent = () => {
625
623
  );
626
624
 
627
625
  const emptyState = (
628
- <EmptyState>
629
- <EmptyStateHeader headingLevel="h4" titleText="No results found" icon={<EmptyStateIcon icon={SearchIcon} />} />
626
+ <EmptyState headingLevel="h4" titleText="No results found" icon={SearchIcon}>
630
627
  <EmptyStateBody>No results match the filter criteria. Clear all filters and try again.</EmptyStateBody>
631
628
  <EmptyStateFooter>
632
629
  <EmptyStateActions>
@@ -12,7 +12,6 @@ import {
12
12
  Popper,
13
13
  Pagination,
14
14
  EmptyState,
15
- EmptyStateHeader,
16
15
  EmptyStateFooter,
17
16
  EmptyStateBody,
18
17
  Button,
@@ -21,7 +20,6 @@ import {
21
20
  ToolbarFilter,
22
21
  ToolbarToggleGroup,
23
22
  MenuGroup,
24
- EmptyStateIcon,
25
23
  EmptyStateActions
26
24
  } from '@patternfly/react-core';
27
25
  import { Table, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
@@ -442,8 +440,7 @@ export const FilterFaceted: React.FunctionComponent = () => {
442
440
  );
443
441
 
444
442
  const emptyState = (
445
- <EmptyState>
446
- <EmptyStateHeader headingLevel="h4" titleText="No results found" icon={<EmptyStateIcon icon={SearchIcon} />} />
443
+ <EmptyState headingLevel="h4" titleText="No results found" icon={SearchIcon}>
447
444
  <EmptyStateBody>No results match the filter criteria. Clear all filters and try again.</EmptyStateBody>
448
445
  <EmptyStateFooter>
449
446
  <EmptyStateActions>
@@ -12,7 +12,6 @@ import {
12
12
  Popper,
13
13
  Pagination,
14
14
  EmptyState,
15
- EmptyStateHeader,
16
15
  EmptyStateFooter,
17
16
  EmptyStateBody,
18
17
  Button,
@@ -20,7 +19,6 @@ import {
20
19
  Badge,
21
20
  ToolbarFilter,
22
21
  ToolbarToggleGroup,
23
- EmptyStateIcon,
24
22
  EmptyStateActions
25
23
  } from '@patternfly/react-core';
26
24
  import { Table, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
@@ -492,8 +490,7 @@ export const FilterMixedSelectGroup: React.FunctionComponent = () => {
492
490
  );
493
491
 
494
492
  const emptyState = (
495
- <EmptyState>
496
- <EmptyStateHeader headingLevel="h4" titleText="No results found" icon={<EmptyStateIcon icon={SearchIcon} />} />
493
+ <EmptyState headingLevel="h4" titleText="No results found" icon={SearchIcon}>
497
494
  <EmptyStateBody>No results match the filter criteria. Clear all filters and try again.</EmptyStateBody>
498
495
  <EmptyStateFooter>
499
496
  <EmptyStateActions>
@@ -12,13 +12,11 @@ import {
12
12
  Popper,
13
13
  Pagination,
14
14
  EmptyState,
15
- EmptyStateHeader,
16
15
  EmptyStateFooter,
17
16
  EmptyStateBody,
18
17
  Button,
19
18
  Bullseye,
20
19
  ToolbarToggleGroup,
21
- EmptyStateIcon,
22
20
  EmptyStateActions
23
21
  } from '@patternfly/react-core';
24
22
  import { Table, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
@@ -465,8 +463,7 @@ export const FilterSameSelectGroup: React.FunctionComponent = () => {
465
463
  );
466
464
 
467
465
  const emptyState = (
468
- <EmptyState>
469
- <EmptyStateHeader headingLevel="h4" titleText="No results found" icon={<EmptyStateIcon icon={SearchIcon} />} />
466
+ <EmptyState headingLevel="h4" titleText="No results found" icon={SearchIcon}>
470
467
  <EmptyStateBody>No results match the filter criteria. Clear all filters and try again.</EmptyStateBody>
471
468
  <EmptyStateFooter>
472
469
  <EmptyStateActions>
@@ -13,12 +13,10 @@ import {
13
13
  Popper,
14
14
  Pagination,
15
15
  EmptyState,
16
- EmptyStateHeader,
17
16
  EmptyStateFooter,
18
17
  EmptyStateBody,
19
18
  Button,
20
19
  Bullseye,
21
- EmptyStateIcon,
22
20
  EmptyStateActions
23
21
  } from '@patternfly/react-core';
24
22
  import { Table, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
@@ -274,8 +272,7 @@ export const FilterSearchInput: React.FunctionComponent = () => {
274
272
  );
275
273
 
276
274
  const emptyState = (
277
- <EmptyState>
278
- <EmptyStateHeader headingLevel="h4" titleText="No results found" icon={<EmptyStateIcon icon={SearchIcon} />} />
275
+ <EmptyState headingLevel="h4" titleText="No results found" icon={SearchIcon}>
279
276
  <EmptyStateBody>No results match the filter criteria. Clear all filters and try again.</EmptyStateBody>
280
277
  <EmptyStateFooter>
281
278
  <EmptyStateActions>
@@ -13,8 +13,6 @@ import {
13
13
  EmptyState,
14
14
  EmptyStateActions,
15
15
  EmptyStateBody,
16
- EmptyStateIcon,
17
- EmptyStateHeader,
18
16
  EmptyStateFooter,
19
17
  EmptyStateVariant,
20
18
  MenuToggle,
@@ -505,12 +503,7 @@ export const NotificationDrawerBasic: React.FunctionComponent = () => {
505
503
  </NotificationDrawerList>
506
504
  )}
507
505
  {!shouldShowNotifications && (
508
- <EmptyState variant={EmptyStateVariant.full}>
509
- <EmptyStateHeader
510
- headingLevel="h2"
511
- titleText="No alerts found"
512
- icon={<EmptyStateIcon icon={SearchIcon} />}
513
- />
506
+ <EmptyState headingLevel="h2" titleText="No alerts found" icon={SearchIcon} variant={EmptyStateVariant.full}>
514
507
  <EmptyStateBody>
515
508
  There are currently no alerts. There may be silenced critical alerts however.
516
509
  </EmptyStateBody>
@@ -13,8 +13,6 @@ import {
13
13
  EmptyState,
14
14
  EmptyStateActions,
15
15
  EmptyStateBody,
16
- EmptyStateIcon,
17
- EmptyStateHeader,
18
16
  EmptyStateFooter,
19
17
  EmptyStateVariant,
20
18
  MenuToggle,
@@ -723,12 +721,12 @@ export const NotificationDrawerGrouped: React.FunctionComponent = () => {
723
721
  onExpand={toggleThirdDrawer}
724
722
  >
725
723
  <NotificationDrawerList isHidden={!thirdDrawerGroupExpanded}>
726
- <EmptyState variant={EmptyStateVariant.full}>
727
- <EmptyStateHeader
728
- headingLevel="h2"
729
- titleText="No alerts found"
730
- icon={<EmptyStateIcon icon={SearchIcon} />}
731
- />
724
+ <EmptyState
725
+ headingLevel="h2"
726
+ titleText="No alerts found"
727
+ icon={SearchIcon}
728
+ variant={EmptyStateVariant.full}
729
+ >
732
730
  <EmptyStateBody>
733
731
  There are currently no critical alerts firing. There may be firing alerts of other severities or
734
732
  silenced critical alerts however.
@@ -744,12 +742,7 @@ export const NotificationDrawerGrouped: React.FunctionComponent = () => {
744
742
  </NotificationDrawerGroupList>
745
743
  )}
746
744
  {!shouldShowNotifications && (
747
- <EmptyState variant={EmptyStateVariant.full}>
748
- <EmptyStateHeader
749
- headingLevel="h2"
750
- titleText="No alerts found"
751
- icon={<EmptyStateIcon icon={SearchIcon} />}
752
- />
745
+ <EmptyState headingLevel="h2" titleText="No alerts found" icon={SearchIcon} variant={EmptyStateVariant.full}>
753
746
  <EmptyStateBody>
754
747
  There are currently no alerts. There may be silenced critical alerts however.
755
748
  </EmptyStateBody>
@@ -3,8 +3,6 @@ import {
3
3
  Button,
4
4
  EmptyState,
5
5
  EmptyStateBody,
6
- EmptyStateHeader,
7
- EmptyStateIcon,
8
6
  NotificationBadge,
9
7
  NotificationBadgeVariant,
10
8
  NotificationDrawer,
@@ -297,12 +295,12 @@ export const AlertGroupToastWithNotificationDrawer: React.FunctionComponent = ()
297
295
  </NotificationDrawerList>
298
296
  )}
299
297
  {notifications.length === 0 && (
300
- <EmptyState variant={EmptyStateVariant.full}>
301
- <EmptyStateHeader
302
- headingLevel="h2"
303
- titleText="No notifications found"
304
- icon={<EmptyStateIcon icon={SearchIcon} />}
305
- />
298
+ <EmptyState
299
+ headingLevel="h2"
300
+ titleText="No notifications found"
301
+ icon={SearchIcon}
302
+ variant={EmptyStateVariant.full}
303
+ >
306
304
  <EmptyStateBody>There are currently no notifications.</EmptyStateBody>
307
305
  </EmptyState>
308
306
  )}
@@ -1,11 +1,9 @@
1
1
  import React from 'react';
2
2
  import {
3
3
  EmptyState,
4
- EmptyStateHeader,
5
4
  EmptyStateFooter,
6
5
  EmptyStateBody,
7
6
  EmptyStateActions,
8
- EmptyStateIcon,
9
7
  Progress,
10
8
  Button
11
9
  } from '@patternfly/react-core';
@@ -43,12 +41,12 @@ const FinishedStep: React.FunctionComponent<finishedProps> = (props: finishedPro
43
41
 
44
42
  return (
45
43
  <div className={layout.bullseye}>
46
- <EmptyState variant="lg">
47
- <EmptyStateHeader
48
- headingLevel="h4"
49
- titleText={percent === 100 ? 'Validation complete' : 'Validating credentials'}
50
- icon={<EmptyStateIcon icon={CogsIcon} />}
51
- />
44
+ <EmptyState
45
+ headingLevel="h4"
46
+ titleText={percent === 100 ? 'Validation complete' : 'Validating credentials'}
47
+ icon={CogsIcon}
48
+ variant="lg"
49
+ >
52
50
  <EmptyStateBody>
53
51
  <Progress value={percent} measureLocation="outside" aria-label="validation-progress" />
54
52
  </EmptyStateBody>