@patternfly/react-table 6.0.0-alpha.9 → 6.0.0-alpha.90

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 (260) hide show
  1. package/CHANGELOG.md +892 -2
  2. package/README.md +2 -17
  3. package/components/package.json +1 -1
  4. package/deprecated/package.json +1 -1
  5. package/dist/dynamic/components/Table/package.json +1 -1
  6. package/dist/dynamic/components/Table/utils/decorators/package.json +1 -1
  7. package/dist/dynamic/components/Table/utils/package.json +1 -1
  8. package/dist/dynamic/deprecated/components/Table/base/package.json +1 -1
  9. package/dist/dynamic/deprecated/components/Table/package.json +1 -1
  10. package/dist/dynamic/deprecated/components/package.json +1 -1
  11. package/dist/dynamic-modules.json +127 -0
  12. package/dist/esm/components/Table/ActionsColumn.d.ts +2 -0
  13. package/dist/esm/components/Table/ActionsColumn.d.ts.map +1 -1
  14. package/dist/esm/components/Table/ActionsColumn.js +4 -5
  15. package/dist/esm/components/Table/ActionsColumn.js.map +1 -1
  16. package/dist/esm/components/Table/DraggableCell.d.ts.map +1 -1
  17. package/dist/esm/components/Table/DraggableCell.js +1 -2
  18. package/dist/esm/components/Table/DraggableCell.js.map +1 -1
  19. package/dist/esm/components/Table/EditColumn.d.ts.map +1 -1
  20. package/dist/esm/components/Table/EditColumn.js +3 -6
  21. package/dist/esm/components/Table/EditColumn.js.map +1 -1
  22. package/dist/esm/components/Table/EditableSelectInputCell.d.ts +3 -4
  23. package/dist/esm/components/Table/EditableSelectInputCell.d.ts.map +1 -1
  24. package/dist/esm/components/Table/EditableSelectInputCell.js +8 -4
  25. package/dist/esm/components/Table/EditableSelectInputCell.js.map +1 -1
  26. package/dist/esm/components/Table/FavoritesCell.d.ts.map +1 -1
  27. package/dist/esm/components/Table/FavoritesCell.js +1 -2
  28. package/dist/esm/components/Table/FavoritesCell.js.map +1 -1
  29. package/dist/esm/components/Table/HeaderCellInfoWrapper.d.ts.map +1 -1
  30. package/dist/esm/components/Table/HeaderCellInfoWrapper.js +2 -4
  31. package/dist/esm/components/Table/HeaderCellInfoWrapper.js.map +1 -1
  32. package/dist/esm/components/Table/RowWrapper.js.map +1 -1
  33. package/dist/esm/components/Table/SortColumn.js.map +1 -1
  34. package/dist/esm/components/Table/Table.d.ts.map +1 -1
  35. package/dist/esm/components/Table/Table.js +4 -4
  36. package/dist/esm/components/Table/Table.js.map +1 -1
  37. package/dist/esm/components/Table/TableText.js.map +1 -1
  38. package/dist/esm/components/Table/TableTypes.d.ts +26 -25
  39. package/dist/esm/components/Table/TableTypes.d.ts.map +1 -1
  40. package/dist/esm/components/Table/TableTypes.js.map +1 -1
  41. package/dist/esm/components/Table/Td.d.ts +1 -1
  42. package/dist/esm/components/Table/Td.js +3 -3
  43. package/dist/esm/components/Table/Td.js.map +1 -1
  44. package/dist/esm/components/Table/Th.d.ts +8 -0
  45. package/dist/esm/components/Table/Th.d.ts.map +1 -1
  46. package/dist/esm/components/Table/Th.js +10 -6
  47. package/dist/esm/components/Table/Th.js.map +1 -1
  48. package/dist/esm/components/Table/Tr.d.ts +2 -0
  49. package/dist/esm/components/Table/Tr.d.ts.map +1 -1
  50. package/dist/esm/components/Table/Tr.js +2 -2
  51. package/dist/esm/components/Table/Tr.js.map +1 -1
  52. package/dist/esm/components/Table/base/columns-are-equal.js.map +1 -1
  53. package/dist/esm/components/Table/base/evaluate-transforms.js.map +1 -1
  54. package/dist/esm/components/Table/base/merge-props.js.map +1 -1
  55. package/dist/esm/components/Table/base/provider.js.map +1 -1
  56. package/dist/esm/components/Table/base/types.d.ts +16 -17
  57. package/dist/esm/components/Table/base/types.d.ts.map +1 -1
  58. package/dist/esm/components/Table/base/types.js.map +1 -1
  59. package/dist/esm/components/Table/utils/decorators/compoundExpand.js.map +1 -1
  60. package/dist/esm/components/Table/utils/decorators/editable.js.map +1 -1
  61. package/dist/esm/components/Table/utils/decorators/favoritable.js.map +1 -1
  62. package/dist/esm/components/Table/utils/decorators/selectable.js +1 -1
  63. package/dist/esm/components/Table/utils/decorators/selectable.js.map +1 -1
  64. package/dist/esm/components/Table/utils/decorators/sortable.js.map +1 -1
  65. package/dist/esm/components/Table/utils/decorators/treeRow.d.ts +1 -1
  66. package/dist/esm/components/Table/utils/headerUtils.js.map +1 -1
  67. package/dist/esm/components/Table/utils/utils.js.map +1 -1
  68. package/dist/esm/demos/DashboardHeader.d.ts +8 -0
  69. package/dist/esm/demos/DashboardHeader.d.ts.map +1 -0
  70. package/dist/esm/demos/DashboardHeader.js +77 -0
  71. package/dist/esm/demos/DashboardHeader.js.map +1 -0
  72. package/dist/esm/demos/DashboardWrapper.d.ts +85 -0
  73. package/dist/esm/demos/DashboardWrapper.d.ts.map +1 -0
  74. package/dist/esm/demos/DashboardWrapper.js +41 -0
  75. package/dist/esm/demos/DashboardWrapper.js.map +1 -0
  76. package/dist/esm/demos/index.d.ts +2 -0
  77. package/dist/esm/demos/index.d.ts.map +1 -1
  78. package/dist/esm/demos/index.js +2 -0
  79. package/dist/esm/demos/index.js.map +1 -1
  80. package/dist/esm/deprecated/components/Table/Body.d.ts +1 -1
  81. package/dist/esm/deprecated/components/Table/Body.d.ts.map +1 -1
  82. package/dist/esm/deprecated/components/Table/Body.js.map +1 -1
  83. package/dist/esm/deprecated/components/Table/BodyCell.js.map +1 -1
  84. package/dist/esm/deprecated/components/Table/BodyWrapper.js.map +1 -1
  85. package/dist/esm/deprecated/components/Table/Table.d.ts.map +1 -1
  86. package/dist/esm/deprecated/components/Table/Table.js +2 -3
  87. package/dist/esm/deprecated/components/Table/Table.js.map +1 -1
  88. package/dist/esm/deprecated/components/Table/base/body-row.js.map +1 -1
  89. package/dist/esm/deprecated/components/Table/base/body.js.map +1 -1
  90. package/dist/esm/deprecated/components/Table/base/header-row.js.map +1 -1
  91. package/dist/esm/deprecated/components/Table/base/resolve-row-key.js.map +1 -1
  92. package/dist/esm/index.d.ts +0 -1
  93. package/dist/esm/index.d.ts.map +1 -1
  94. package/dist/esm/index.js +0 -1
  95. package/dist/esm/index.js.map +1 -1
  96. package/dist/esm/test-helpers/data-helpers.js.map +1 -1
  97. package/dist/js/components/Table/ActionsColumn.d.ts +2 -0
  98. package/dist/js/components/Table/ActionsColumn.d.ts.map +1 -1
  99. package/dist/js/components/Table/ActionsColumn.js +4 -5
  100. package/dist/js/components/Table/ActionsColumn.js.map +1 -1
  101. package/dist/js/components/Table/CollapseColumn.js.map +1 -1
  102. package/dist/js/components/Table/DraggableCell.d.ts.map +1 -1
  103. package/dist/js/components/Table/DraggableCell.js +1 -2
  104. package/dist/js/components/Table/DraggableCell.js.map +1 -1
  105. package/dist/js/components/Table/EditColumn.d.ts.map +1 -1
  106. package/dist/js/components/Table/EditColumn.js +3 -6
  107. package/dist/js/components/Table/EditColumn.js.map +1 -1
  108. package/dist/js/components/Table/EditableSelectInputCell.d.ts +3 -4
  109. package/dist/js/components/Table/EditableSelectInputCell.d.ts.map +1 -1
  110. package/dist/js/components/Table/EditableSelectInputCell.js +8 -4
  111. package/dist/js/components/Table/EditableSelectInputCell.js.map +1 -1
  112. package/dist/js/components/Table/EditableTextCell.js.map +1 -1
  113. package/dist/js/components/Table/FavoritesCell.d.ts.map +1 -1
  114. package/dist/js/components/Table/FavoritesCell.js +1 -2
  115. package/dist/js/components/Table/FavoritesCell.js.map +1 -1
  116. package/dist/js/components/Table/HeaderCellInfoWrapper.d.ts.map +1 -1
  117. package/dist/js/components/Table/HeaderCellInfoWrapper.js +2 -4
  118. package/dist/js/components/Table/HeaderCellInfoWrapper.js.map +1 -1
  119. package/dist/js/components/Table/RowWrapper.js +0 -1
  120. package/dist/js/components/Table/RowWrapper.js.map +1 -1
  121. package/dist/js/components/Table/SelectColumn.js +1 -1
  122. package/dist/js/components/Table/SelectColumn.js.map +1 -1
  123. package/dist/js/components/Table/SortColumn.js +1 -2
  124. package/dist/js/components/Table/SortColumn.js.map +1 -1
  125. package/dist/js/components/Table/Table.d.ts.map +1 -1
  126. package/dist/js/components/Table/Table.js +3 -3
  127. package/dist/js/components/Table/Table.js.map +1 -1
  128. package/dist/js/components/Table/TableText.js +2 -2
  129. package/dist/js/components/Table/TableText.js.map +1 -1
  130. package/dist/js/components/Table/TableTypes.d.ts +26 -25
  131. package/dist/js/components/Table/TableTypes.d.ts.map +1 -1
  132. package/dist/js/components/Table/TableTypes.js +2 -6
  133. package/dist/js/components/Table/TableTypes.js.map +1 -1
  134. package/dist/js/components/Table/Td.d.ts +1 -1
  135. package/dist/js/components/Table/Td.js +3 -3
  136. package/dist/js/components/Table/Td.js.map +1 -1
  137. package/dist/js/components/Table/Th.d.ts +8 -0
  138. package/dist/js/components/Table/Th.d.ts.map +1 -1
  139. package/dist/js/components/Table/Th.js +10 -6
  140. package/dist/js/components/Table/Th.js.map +1 -1
  141. package/dist/js/components/Table/Tr.d.ts +2 -0
  142. package/dist/js/components/Table/Tr.d.ts.map +1 -1
  143. package/dist/js/components/Table/Tr.js +2 -2
  144. package/dist/js/components/Table/Tr.js.map +1 -1
  145. package/dist/js/components/Table/base/columns-are-equal.js.map +1 -1
  146. package/dist/js/components/Table/base/evaluate-transforms.js.map +1 -1
  147. package/dist/js/components/Table/base/merge-props.js.map +1 -1
  148. package/dist/js/components/Table/base/provider.js.map +1 -1
  149. package/dist/js/components/Table/base/types.d.ts +16 -17
  150. package/dist/js/components/Table/base/types.d.ts.map +1 -1
  151. package/dist/js/components/Table/base/types.js +0 -4
  152. package/dist/js/components/Table/base/types.js.map +1 -1
  153. package/dist/js/components/Table/utils/decorators/compoundExpand.js.map +1 -1
  154. package/dist/js/components/Table/utils/decorators/editable.js.map +1 -1
  155. package/dist/js/components/Table/utils/decorators/favoritable.js.map +1 -1
  156. package/dist/js/components/Table/utils/decorators/selectable.js +1 -1
  157. package/dist/js/components/Table/utils/decorators/selectable.js.map +1 -1
  158. package/dist/js/components/Table/utils/decorators/sortable.js.map +1 -1
  159. package/dist/js/components/Table/utils/decorators/treeRow.d.ts +1 -1
  160. package/dist/js/components/Table/utils/decorators/treeRow.js.map +1 -1
  161. package/dist/js/components/Table/utils/headerUtils.js.map +1 -1
  162. package/dist/js/components/Table/utils/utils.js.map +1 -1
  163. package/dist/js/demos/DashboardHeader.d.ts +8 -0
  164. package/dist/js/demos/DashboardHeader.d.ts.map +1 -0
  165. package/dist/js/demos/DashboardHeader.js +82 -0
  166. package/dist/js/demos/DashboardHeader.js.map +1 -0
  167. package/dist/js/demos/DashboardWrapper.d.ts +85 -0
  168. package/dist/js/demos/DashboardWrapper.d.ts.map +1 -0
  169. package/dist/js/demos/DashboardWrapper.js +45 -0
  170. package/dist/js/demos/DashboardWrapper.js.map +1 -0
  171. package/dist/js/demos/index.d.ts +2 -0
  172. package/dist/js/demos/index.d.ts.map +1 -1
  173. package/dist/js/demos/index.js +2 -0
  174. package/dist/js/demos/index.js.map +1 -1
  175. package/dist/js/deprecated/components/Table/Body.d.ts +1 -1
  176. package/dist/js/deprecated/components/Table/Body.d.ts.map +1 -1
  177. package/dist/js/deprecated/components/Table/Body.js.map +1 -1
  178. package/dist/js/deprecated/components/Table/BodyCell.js +0 -1
  179. package/dist/js/deprecated/components/Table/BodyCell.js.map +1 -1
  180. package/dist/js/deprecated/components/Table/BodyWrapper.js.map +1 -1
  181. package/dist/js/deprecated/components/Table/Table.d.ts.map +1 -1
  182. package/dist/js/deprecated/components/Table/Table.js +9 -10
  183. package/dist/js/deprecated/components/Table/Table.js.map +1 -1
  184. package/dist/js/deprecated/components/Table/base/body-row.js.map +1 -1
  185. package/dist/js/deprecated/components/Table/base/body.js.map +1 -1
  186. package/dist/js/deprecated/components/Table/base/header-row.js.map +1 -1
  187. package/dist/js/deprecated/components/Table/base/resolve-row-key.js.map +1 -1
  188. package/dist/js/index.d.ts +0 -1
  189. package/dist/js/index.d.ts.map +1 -1
  190. package/dist/js/index.js +0 -1
  191. package/dist/js/index.js.map +1 -1
  192. package/dist/js/test-helpers/data-helpers.js.map +1 -1
  193. package/dist/umd/assets/output-DKNGCOvO.css +27042 -0
  194. package/dist/umd/react-table.min.js +4 -5
  195. package/package.json +8 -12
  196. package/rollup.config.mjs +8 -0
  197. package/single-packages.config.json +3 -6
  198. package/src/components/Table/ActionsColumn.tsx +35 -31
  199. package/src/components/Table/DraggableCell.tsx +2 -3
  200. package/src/components/Table/EditColumn.tsx +21 -9
  201. package/src/components/Table/EditableSelectInputCell.tsx +15 -10
  202. package/src/components/Table/FavoritesCell.tsx +2 -3
  203. package/src/components/Table/HeaderCellInfoWrapper.tsx +10 -6
  204. package/src/components/Table/Table.tsx +4 -4
  205. package/src/components/Table/TableTypes.tsx +9 -8
  206. package/src/components/Table/Td.tsx +5 -5
  207. package/src/components/Table/Th.tsx +24 -6
  208. package/src/components/Table/Tr.tsx +4 -0
  209. package/src/components/Table/__tests__/Th.test.tsx +31 -0
  210. package/src/components/Table/__tests__/__snapshots__/RowWrapper.test.tsx.snap +4 -4
  211. package/src/components/Table/base/types.tsx +6 -7
  212. package/src/components/Table/examples/Table.md +35 -4
  213. package/src/components/Table/examples/TableActions.tsx +2 -2
  214. package/src/components/Table/examples/TableActionsOverflow.tsx +3 -4
  215. package/src/components/Table/examples/TableCompoundExpandable.tsx +3 -3
  216. package/src/components/Table/examples/TableDraggable.tsx +19 -16
  217. package/src/components/Table/examples/TableEmptyState.tsx +1 -8
  218. package/src/components/Table/examples/TableExpandable.tsx +1 -1
  219. package/src/components/Table/examples/TableMisc.tsx +2 -2
  220. package/src/components/Table/examples/TableNestedExpandable.tsx +1 -1
  221. package/src/components/Table/examples/TableNestedHeaders.tsx +4 -7
  222. package/src/components/Table/examples/TableNestedStickyHeader.tsx +4 -10
  223. package/src/components/Table/examples/TableNestedTableExpandable.tsx +1 -1
  224. package/src/components/Table/examples/TableSelectable.tsx +1 -0
  225. package/src/components/Table/examples/TableSelectableRadio.tsx +1 -1
  226. package/src/components/Table/examples/TableSortableCustom.tsx +2 -3
  227. package/src/components/Table/examples/TableStickyColumnsAndHeader.tsx +1 -1
  228. package/src/components/Table/examples/TableStripedExpandable.tsx +1 -1
  229. package/src/components/Table/utils/__snapshots__/transformers.test.tsx.snap +4 -4
  230. package/src/components/Table/utils/decorators/selectable.tsx +1 -1
  231. package/src/components/Table/utils/transformers.test.tsx +4 -7
  232. package/src/demos/DashboardHeader.tsx +198 -0
  233. package/src/demos/DashboardWrapper.tsx +198 -0
  234. package/src/demos/Table.md +29 -7
  235. package/src/demos/assets/avatarImg.svg +18 -0
  236. package/src/demos/assets/index.d.ts +4 -0
  237. package/src/demos/assets/pf-logo.svg +28 -0
  238. package/src/demos/examples/TableBulkSelect.tsx +2 -2
  239. package/src/demos/examples/TableColumnManagement.tsx +7 -9
  240. package/src/demos/examples/TableColumnManagementWithDraggable.tsx +7 -13
  241. package/src/demos/examples/TableCompact.tsx +8 -3
  242. package/src/demos/examples/TableCompoundExpansion.tsx +5 -4
  243. package/src/demos/examples/TableEmptyStateDefault.tsx +7 -9
  244. package/src/demos/examples/TableEmptyStateError.tsx +8 -18
  245. package/src/demos/examples/TableEmptyStateLoading.tsx +3 -13
  246. package/src/demos/examples/TableExpandCollapseAll.tsx +59 -58
  247. package/src/demos/examples/TableFilterable.tsx +10 -17
  248. package/src/demos/examples/TableSortableResponsive.tsx +13 -16
  249. package/src/demos/examples/TableStaticBottomPagination.tsx +8 -3
  250. package/src/demos/examples/TableStickyFirstColumn.tsx +1 -1
  251. package/src/demos/examples/TableStickyHeader.tsx +1 -1
  252. package/src/demos/index.ts +2 -0
  253. package/src/deprecated/components/Table/Table.tsx +2 -3
  254. package/src/deprecated/components/Table/__tests__/__snapshots__/Table.test.tsx.snap +2457 -2274
  255. package/src/deprecated/components/Table/examples/LegacyTableEmptyState.tsx +6 -8
  256. package/src/deprecated/components/Table/examples/LegacyTableMisc.tsx +2 -2
  257. package/src/deprecated/components/Table/examples/LegacyTableSortableCustom.tsx +2 -3
  258. package/src/deprecated/components/Table/examples/Table.md +48 -41
  259. package/src/index.ts +0 -1
  260. package/rollup.config.js +0 -7
@@ -18,7 +18,6 @@ import {
18
18
  textCenter,
19
19
  cellActions
20
20
  } from './';
21
- import { DropdownPosition, DropdownDirection } from '@patternfly/react-core/dist/esm/deprecated/components/Dropdown';
22
21
  import {
23
22
  IAction,
24
23
  IActions,
@@ -31,7 +30,7 @@ import {
31
30
  } from '../TableTypes';
32
31
  import { css } from '@patternfly/react-styles';
33
32
  import tableStyles from '@patternfly/react-styles/css/components/Table/table';
34
- import dropdownStyles from '@patternfly/react-styles/css/components/Dropdown/dropdown';
33
+ import menuStyles from '@patternfly/react-styles/css/components/Menu/menu';
35
34
 
36
35
  const testCellActions = async ({
37
36
  actions,
@@ -58,8 +57,8 @@ const testCellActions = async ({
58
57
  rowData,
59
58
  column: {
60
59
  extraParams: {
61
- dropdownPosition: DropdownPosition.right,
62
- dropdownDirection: DropdownDirection.down
60
+ dropdownPosition: 'right',
61
+ dropdownDirection: 'down'
63
62
  }
64
63
  }
65
64
  });
@@ -77,9 +76,7 @@ const testCellActions = async ({
77
76
  await user.click(screen.getAllByRole('button')[0]);
78
77
  await waitFor(() =>
79
78
  // eslint-disable-next-line testing-library/no-container
80
- expect(container.querySelectorAll(`.${dropdownStyles.dropdownMenu} li button`)).toHaveLength(
81
- expectDisabled ? 0 : 1
82
- )
79
+ expect(container.querySelectorAll(`.${menuStyles.menu} li button`)).toHaveLength(expectDisabled ? 0 : 1)
83
80
  );
84
81
  }
85
82
  };
@@ -0,0 +1,198 @@
1
+ import React, { useState } from 'react';
2
+ import {
3
+ Avatar,
4
+ Brand,
5
+ Button,
6
+ ButtonVariant,
7
+ Divider,
8
+ Dropdown,
9
+ DropdownGroup,
10
+ DropdownItem,
11
+ DropdownList,
12
+ Masthead,
13
+ MastheadToggle,
14
+ MastheadMain,
15
+ MastheadBrand,
16
+ MastheadContent,
17
+ MenuToggle,
18
+ Toolbar,
19
+ ToolbarContent,
20
+ ToolbarGroup,
21
+ ToolbarItem,
22
+ PageToggleButton
23
+ } from '@patternfly/react-core';
24
+ import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
25
+ import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
26
+ import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
27
+ import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
28
+ import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
29
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
30
+ import imgAvatar from '@patternfly/react-table/src/demos/assets/avatarImg.svg';
31
+ import pfLogo from '@patternfly/react-table/src/demos/assets/pf-logo.svg';
32
+
33
+ interface DashboardHeaderProps {
34
+ /** Render custom notification badge */
35
+ notificationBadge?: React.ReactNode;
36
+ }
37
+
38
+ export const DashboardHeader: React.FC<DashboardHeaderProps> = ({ notificationBadge }) => {
39
+ const [isDropdownOpen, setIsDropdownOpen] = useState(false);
40
+ const [isKebabDropdownOpen, setIsKebabDropdownOpen] = useState(false);
41
+ const [isFullKebabDropdownOpen, setIsFullKebabDropdownOpen] = useState(false);
42
+
43
+ const kebabDropdownItems = (
44
+ <>
45
+ <DropdownItem>
46
+ <CogIcon /> Settings
47
+ </DropdownItem>
48
+ <DropdownItem>
49
+ <HelpIcon /> Help
50
+ </DropdownItem>
51
+ </>
52
+ );
53
+
54
+ const userDropdownItems = (
55
+ <>
56
+ <DropdownItem key="group 2 profile">My profile</DropdownItem>
57
+ <DropdownItem key="group 2 user">User management</DropdownItem>
58
+ <DropdownItem key="group 2 logout">Logout</DropdownItem>
59
+ </>
60
+ );
61
+
62
+ const onDropdownToggle = () => {
63
+ setIsDropdownOpen(!isDropdownOpen);
64
+ };
65
+
66
+ const onDropdownSelect = () => {
67
+ setIsDropdownOpen(false);
68
+ };
69
+
70
+ const onKebabDropdownToggle = () => {
71
+ setIsKebabDropdownOpen(!isKebabDropdownOpen);
72
+ };
73
+
74
+ const onKebabDropdownSelect = () => {
75
+ setIsKebabDropdownOpen(false);
76
+ };
77
+
78
+ const onFullKebabToggle = () => {
79
+ setIsFullKebabDropdownOpen(!isFullKebabDropdownOpen);
80
+ };
81
+
82
+ const onFullKebabSelect = () => {
83
+ setIsFullKebabDropdownOpen(false);
84
+ };
85
+
86
+ return (
87
+ <Masthead>
88
+ <MastheadToggle>
89
+ <PageToggleButton variant="plain" aria-label="Global navigation">
90
+ <BarsIcon />
91
+ </PageToggleButton>
92
+ </MastheadToggle>
93
+ <MastheadMain>
94
+ <MastheadBrand>
95
+ <Brand src={pfLogo} alt="PatternFly" heights={{ default: '36px' }} />
96
+ </MastheadBrand>
97
+ </MastheadMain>
98
+ <MastheadContent>
99
+ <Toolbar id="toolbar" isFullHeight isStatic>
100
+ <ToolbarContent>
101
+ <ToolbarGroup
102
+ variant="action-group-plain"
103
+ align={{ default: 'alignEnd' }}
104
+ gap={{ default: 'gapNone', md: 'gapMd' }}
105
+ >
106
+ {notificationBadge ?? (
107
+ <ToolbarItem>
108
+ <Button
109
+ aria-label="Notifications"
110
+ variant={ButtonVariant.plain}
111
+ icon={<BellIcon />}
112
+ onClick={() => {}}
113
+ />
114
+ </ToolbarItem>
115
+ )}
116
+ <ToolbarGroup variant="action-group-plain" visibility={{ default: 'hidden', lg: 'visible' }}>
117
+ <ToolbarItem>
118
+ <Button aria-label="Settings" variant={ButtonVariant.plain} icon={<CogIcon />} />
119
+ </ToolbarItem>
120
+ <ToolbarItem>
121
+ <Button aria-label="Help" variant={ButtonVariant.plain} icon={<QuestionCircleIcon />} />
122
+ </ToolbarItem>
123
+ </ToolbarGroup>
124
+ <ToolbarItem visibility={{ default: 'hidden', md: 'visible', lg: 'hidden' }}>
125
+ <Dropdown
126
+ isOpen={isKebabDropdownOpen}
127
+ onSelect={onKebabDropdownSelect}
128
+ onOpenChange={setIsKebabDropdownOpen}
129
+ popperProps={{ position: 'right' }}
130
+ toggle={(toggleRef: React.RefObject<any>) => (
131
+ <MenuToggle
132
+ ref={toggleRef}
133
+ isExpanded={isKebabDropdownOpen}
134
+ onClick={onKebabDropdownToggle}
135
+ variant="plain"
136
+ aria-label="Settings and help"
137
+ >
138
+ <EllipsisVIcon aria-hidden="true" />
139
+ </MenuToggle>
140
+ )}
141
+ >
142
+ <DropdownList>{kebabDropdownItems}</DropdownList>
143
+ </Dropdown>
144
+ </ToolbarItem>
145
+ <ToolbarItem visibility={{ md: 'hidden' }}>
146
+ <Dropdown
147
+ isOpen={isFullKebabDropdownOpen}
148
+ onSelect={onFullKebabSelect}
149
+ onOpenChange={setIsFullKebabDropdownOpen}
150
+ popperProps={{ position: 'right' }}
151
+ toggle={(toggleRef: React.RefObject<any>) => (
152
+ <MenuToggle
153
+ ref={toggleRef}
154
+ isExpanded={isFullKebabDropdownOpen}
155
+ onClick={onFullKebabToggle}
156
+ variant="plain"
157
+ aria-label="Toolbar menu"
158
+ >
159
+ <EllipsisVIcon aria-hidden="true" />
160
+ </MenuToggle>
161
+ )}
162
+ >
163
+ <DropdownGroup key="group 2" aria-label="User actions">
164
+ <DropdownList>{userDropdownItems}</DropdownList>
165
+ </DropdownGroup>
166
+ <Divider />
167
+ <DropdownList>{kebabDropdownItems}</DropdownList>
168
+ </Dropdown>
169
+ </ToolbarItem>
170
+ </ToolbarGroup>
171
+ <ToolbarItem visibility={{ default: 'hidden', md: 'visible' }}>
172
+ <Dropdown
173
+ isOpen={isDropdownOpen}
174
+ onSelect={onDropdownSelect}
175
+ onOpenChange={setIsDropdownOpen}
176
+ popperProps={{ position: 'right' }}
177
+ toggle={(toggleRef: React.RefObject<any>) => (
178
+ <MenuToggle
179
+ ref={toggleRef}
180
+ isExpanded={isDropdownOpen}
181
+ onClick={onDropdownToggle}
182
+ icon={<Avatar src={imgAvatar} alt="" />}
183
+ isFullHeight
184
+ >
185
+ Ned Username
186
+ </MenuToggle>
187
+ )}
188
+ >
189
+ <DropdownList>{userDropdownItems}</DropdownList>
190
+ </Dropdown>
191
+ </ToolbarItem>
192
+ </ToolbarContent>
193
+ </Toolbar>
194
+ </MastheadContent>
195
+ </Masthead>
196
+ );
197
+ };
198
+ DashboardHeader.displayName = 'DashboardHeader';
@@ -0,0 +1,198 @@
1
+ import React, { useState } from 'react';
2
+ import {
3
+ Breadcrumb,
4
+ BreadcrumbItem,
5
+ Content,
6
+ Nav,
7
+ NavItem,
8
+ NavList,
9
+ Page,
10
+ PageSection,
11
+ PageSidebar,
12
+ PageSidebarBody,
13
+ SkipToContent
14
+ } from '@patternfly/react-core';
15
+ import { DashboardHeader } from './DashboardHeader';
16
+
17
+ interface DashboardWrapperProps {
18
+ /** Programmatically manage if the sidebar nav is shown */
19
+ sidebarNavOpen?: boolean;
20
+ /** Flag to render sample breadcrumb if custom breadcrumb not passed */
21
+ hasDefaultBreadcrumb?: boolean;
22
+ /** Flag to render sample page title if custom title not passed */
23
+ hasPageTemplateTitle?: boolean;
24
+ /** Content rendered inside the main section of the page layout (e.g. <PageSection />) */
25
+ children?: React.ReactNode;
26
+ /** Additional classes added to the page layout */
27
+ className?: string;
28
+ /** Masthead component (e.g. <Masthead />) */
29
+ masthead?: React.ReactNode;
30
+ /** Sidebar component for a side nav (e.g. <PageSidebar />) */
31
+ sidebar?: React.ReactNode;
32
+ /** Notification drawer component for an optional notification drawer (e.g. <NotificationDrawer />) */
33
+ notificationDrawer?: React.ReactNode;
34
+ /** Flag indicating Notification drawer in expanded */
35
+ isNotificationDrawerExpanded?: boolean;
36
+ /** Flag indicating if breadcrumb width should be limited */
37
+ isBreadcrumbWidthLimited?: boolean;
38
+ /** Callback when notification drawer panel is finished expanding. */
39
+ onNotificationDrawerExpand?: (event: KeyboardEvent | React.MouseEvent | React.TransitionEvent) => void;
40
+ /** Skip to content component for the page */
41
+ skipToContent?: React.ReactElement;
42
+ /** Sets the value for role on the <main> element */
43
+ role?: string;
44
+ /** an id to use for the [role="main"] element */
45
+ mainContainerId?: string;
46
+ /** tabIndex to use for the [role="main"] element, null to unset it */
47
+ mainTabIndex?: number | null;
48
+ /**
49
+ * If true, manages the sidebar open/close state and there is no need to pass the isSidebarOpen boolean into
50
+ * the sidebar component or add a callback onSidebarToggle function into the Masthead component
51
+ */
52
+ isManagedSidebar?: boolean;
53
+ /** Flag indicating if tertiary nav width should be limited */
54
+ isTertiaryNavWidthLimited?: boolean;
55
+ /**
56
+ * If true, the managed sidebar is initially open for desktop view
57
+ */
58
+ defaultManagedSidebarIsOpen?: boolean;
59
+ /**
60
+ * Can add callback to be notified when resize occurs, for example to set the sidebar isSidebarOpen prop to false for a width < 768px
61
+ * Returns object { mobileView: boolean, windowSize: number }
62
+ */
63
+ onPageResize?: ((event: MouseEvent | TouchEvent | React.KeyboardEvent, object: any) => void) | null;
64
+ /**
65
+ * The page resize observer uses the breakpoints returned from this function when adding the pf-m-breakpoint-[default|sm|md|lg|xl|2xl] class
66
+ * You can override the default getBreakpoint function to return breakpoints at different sizes than the default
67
+ * You can view the default getBreakpoint function here:
68
+ * https://github.com/patternfly/patternfly-react/blob/main/packages/react-core/src/helpers/util.ts
69
+ */
70
+ getBreakpoint?: (width: number | null) => 'default' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
71
+ /**
72
+ * The page resize observer uses the breakpoints returned from this function when adding the pf-m-breakpoint-[default|sm|md|lg|xl|2xl] class
73
+ * You can override the default getVerticalBreakpoint function to return breakpoints at different sizes than the default
74
+ * You can view the default getVerticalBreakpoint function here:
75
+ * https://github.com/patternfly/patternfly-react/blob/main/packages/react-core/src/helpers/util.ts
76
+ */
77
+ getVerticalBreakpoint?: (height: number | null) => 'default' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
78
+ /** Breadcrumb component for the page */
79
+ breadcrumb?: React.ReactNode;
80
+ /** Tertiary nav component for the page */
81
+ tertiaryNav?: React.ReactNode;
82
+ /** Accessible label, can be used to name main section */
83
+ mainAriaLabel?: string;
84
+ /** Flag indicating if the tertiaryNav should be in a group */
85
+ isTertiaryNavGrouped?: boolean;
86
+ /** Flag indicating if the breadcrumb should be in a group */
87
+ isBreadcrumbGrouped?: boolean;
88
+ /** Additional content of the group */
89
+ additionalGroupedContent?: React.ReactNode;
90
+ /** HTML component used as main component of the page. Defaults to 'main', only pass in 'div' if another 'main' element already exists. */
91
+ mainComponent?: 'main' | 'div';
92
+ /** Additional props of the group */
93
+ groupProps?: any;
94
+ /** Additional props of the breadcrumb */
95
+ breadcrumbProps?: any;
96
+ }
97
+
98
+ export const DashboardBreadcrumb = (
99
+ <Breadcrumb>
100
+ <BreadcrumbItem>Section home</BreadcrumbItem>
101
+ <BreadcrumbItem to="#">Section title</BreadcrumbItem>
102
+ <BreadcrumbItem to="#">Section title</BreadcrumbItem>
103
+ <BreadcrumbItem to="#" isActive>
104
+ Section landing
105
+ </BreadcrumbItem>
106
+ </Breadcrumb>
107
+ );
108
+
109
+ const PageTemplateTitle = (
110
+ <PageSection>
111
+ <Content>
112
+ <h1>Main title</h1>
113
+ <p>This is a full page demo.</p>
114
+ </Content>
115
+ </PageSection>
116
+ );
117
+
118
+ export const DashboardWrapper: React.FC<DashboardWrapperProps> = ({
119
+ children,
120
+ mainContainerId,
121
+ breadcrumb,
122
+ masthead,
123
+ sidebar,
124
+ sidebarNavOpen,
125
+ onPageResize,
126
+ hasDefaultBreadcrumb,
127
+ notificationDrawer,
128
+ isNotificationDrawerExpanded,
129
+ hasPageTemplateTitle,
130
+ ...pageProps
131
+ }: DashboardWrapperProps) => {
132
+ const [activeItem, setActiveItem] = useState(1);
133
+
134
+ const onNavSelect = (_event: React.FormEvent<HTMLInputElement>, result: any) => {
135
+ setActiveItem(result.itemId);
136
+ };
137
+
138
+ let renderedBreadcrumb;
139
+ if (!hasDefaultBreadcrumb) {
140
+ renderedBreadcrumb = breadcrumb ?? DashboardBreadcrumb;
141
+ }
142
+
143
+ const PageNav = (
144
+ <Nav onSelect={onNavSelect} aria-label="Nav">
145
+ <NavList>
146
+ <NavItem itemId={0} isActive={activeItem === 0} to="#system-panel">
147
+ System panel
148
+ </NavItem>
149
+ <NavItem itemId={1} isActive={activeItem === 1} to="#policy">
150
+ Policy
151
+ </NavItem>
152
+ <NavItem itemId={2} isActive={activeItem === 2} to="#auth">
153
+ Authentication
154
+ </NavItem>
155
+ <NavItem itemId={3} isActive={activeItem === 3} to="#network">
156
+ Network services
157
+ </NavItem>
158
+ <NavItem itemId={4} isActive={activeItem === 4} to="#server">
159
+ Server
160
+ </NavItem>
161
+ </NavList>
162
+ </Nav>
163
+ );
164
+
165
+ const _sidebar = (
166
+ <PageSidebar isSidebarOpen={sidebarNavOpen || false}>
167
+ <PageSidebarBody>{PageNav}</PageSidebarBody>
168
+ </PageSidebar>
169
+ );
170
+
171
+ const PageSkipToContent = (
172
+ <SkipToContent href={`#${mainContainerId ?? 'main-content-page-layout-default-nav'}`}>
173
+ Skip to content
174
+ </SkipToContent>
175
+ );
176
+
177
+ return (
178
+ <Page
179
+ masthead={masthead ?? <DashboardHeader />}
180
+ sidebar={sidebar ?? _sidebar}
181
+ isManagedSidebar
182
+ skipToContent={PageSkipToContent}
183
+ breadcrumb={renderedBreadcrumb}
184
+ mainContainerId={mainContainerId ?? 'main-content-page-layout-default-nav'}
185
+ notificationDrawer={notificationDrawer}
186
+ isNotificationDrawerExpanded={isNotificationDrawerExpanded}
187
+ {...(typeof onPageResize === 'function' && {
188
+ onPageResize: (event: MouseEvent | TouchEvent | React.KeyboardEvent<Element>, resizeObject: any) =>
189
+ onPageResize(event, resizeObject)
190
+ })}
191
+ {...pageProps}
192
+ >
193
+ {hasPageTemplateTitle && PageTemplateTitle}
194
+ {children}
195
+ </Page>
196
+ );
197
+ };
198
+ DashboardWrapper.displayName = 'DashboardWrapper';
@@ -5,6 +5,7 @@ section: components
5
5
 
6
6
  import {
7
7
  Checkbox,
8
+ Content,
8
9
  Label,
9
10
  PageSection,
10
11
  ToolbarExpandIconWrapper,
@@ -21,9 +22,25 @@ Breadcrumb,
21
22
  BreadcrumbItem,
22
23
  Page,
23
24
  PageSectionVariants,
24
- TextContent,
25
- Text,
26
- Divider } from '@patternfly/react-core';
25
+ Divider,
26
+ Avatar,
27
+ Brand,
28
+ Button,
29
+ ButtonVariant,
30
+ Dropdown,
31
+ DropdownGroup,
32
+ DropdownItem,
33
+ DropdownList,
34
+ MastheadBrand,
35
+ MenuToggle,
36
+ ToolbarGroup,
37
+ PageToggleButton,
38
+ Nav,
39
+ NavItem,
40
+ NavList,
41
+ PageSidebar,
42
+ PageSidebarBody,
43
+ } from '@patternfly/react-core';
27
44
  import { Table as TableDeprecated, TableHeader, TableBody } from '@patternfly/react-table/deprecated';
28
45
  import CheckIcon from '@patternfly/react-icons/dist/esm/icons/check-icon';
29
46
  import CloneIcon from '@patternfly/react-icons/dist/esm/icons/clone-icon';
@@ -39,24 +56,23 @@ import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclam
39
56
  import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
40
57
  import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
41
58
  import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
42
- import globalDangerColor200 from '@patternfly/react-tokens/dist/esm/global_danger_color_200';
43
- import imgBrand from '@patternfly/react-core/src/components/assets/pfLogo.svg';
44
- import imgAvatar from '@patternfly/react-core/src/components/assets/avatarImg.svg';
45
59
  import AngleDownIcon from '@patternfly/react-icons/dist/esm/icons/angle-down-icon';
46
60
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
47
61
  import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
48
62
  import AttentionBellIcon from '@patternfly/react-icons/dist/esm/icons/attention-bell-icon';
49
63
  import BlueprintIcon from '@patternfly/react-icons/dist/esm/icons/blueprint-icon';
50
64
  import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
51
- import { DashboardWrapper } from '@patternfly/react-core/dist/esm/demos/DashboardWrapper';
65
+ import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper';
52
66
  import { rows, columns } from '@patternfly/react-table/dist/esm/demos/sampleData';
53
67
  import spacing from '@patternfly/react-styles/css/utilities/Spacing/spacing';
68
+ import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
54
69
 
55
70
  ## Demos
56
71
 
57
72
  ### Bulk select
58
73
 
59
74
  ```js isFullscreen file="./examples/TableBulkSelect.tsx"
75
+
60
76
  ```
61
77
 
62
78
  ### Expand/collapse all
@@ -86,11 +102,13 @@ import spacing from '@patternfly/react-styles/css/utilities/Spacing/spacing';
86
102
  ### Column management with draggable
87
103
 
88
104
  ```js isFullscreen file="./examples/TableColumnManagementWithDraggable.tsx"
105
+
89
106
  ```
90
107
 
91
108
  ### Filterable
92
109
 
93
110
  ```js isFullscreen file="./examples/TableFilterable.tsx"
111
+
94
112
  ```
95
113
 
96
114
  ### Sortable - responsive
@@ -111,6 +129,7 @@ To demonstrate this, navigate to the last page of data below using the `>>` navi
111
129
  - The `isLastFullPageShown` prop navigates you back to the previous page which does contain a full page of 5 rows (rows 6 - 10).
112
130
 
113
131
  ```js isFullscreen file="./examples/TableAutomaticPagination.tsx"
132
+
114
133
  ```
115
134
 
116
135
  ### Static bottom pagination on mobile
@@ -146,14 +165,17 @@ These examples demonstrate the use of an [Empty State component](/components/emp
146
165
  ### Empty
147
166
 
148
167
  ```js isFullscreen file="./examples/TableEmptyStateDefault.tsx"
168
+
149
169
  ```
150
170
 
151
171
  ### Loading
152
172
 
153
173
  ```js isFullscreen file="./examples/TableEmptyStateLoading.tsx"
174
+
154
175
  ```
155
176
 
156
177
  ### Error
157
178
 
158
179
  ```js isFullscreen file="./examples/TableEmptyStateError.tsx"
180
+
159
181
  ```
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 36 36" style="enable-background:new 0 0 36 36;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill-rule:evenodd;clip-rule:evenodd;fill:#F0F0F0;}
7
+ .st1{fill-rule:evenodd;clip-rule:evenodd;fill:#D2D2D2;}
8
+ .st2{fill:#B8BBBE;}
9
+ .st3{fill:#D2D2D2;}
10
+ </style>
11
+ <rect class="st0" width="36" height="36"/>
12
+ <path class="st1" d="M17.7,20.1c-3.5,0-6.4-2.9-6.4-6.4s2.9-6.4,6.4-6.4s6.4,2.9,6.4,6.4S21.3,20.1,17.7,20.1z"/>
13
+ <path class="st2" d="M13.3,36l0-6.7c-2,0.4-2.9,1.4-3.1,3.5L10.1,36H13.3z"/>
14
+ <path class="st3" d="M10.1,36l0.1-3.2c0.2-2.1,1.1-3.1,3.1-3.5l0,6.7h9.4l0-6.7c2,0.4,2.9,1.4,3.1,3.5l0.1,3.2h4.7
15
+ c-0.4-3.9-1.3-9-2.9-11c-1.1-1.4-2.3-2.2-3.5-2.6s-1.8-0.6-6.3-0.6s-6.1,0.7-6.1,0.7c-1.2,0.4-2.4,1.2-3.4,2.6
16
+ C6.7,27,5.8,32.2,5.4,36H10.1z"/>
17
+ <path class="st2" d="M25.9,36l-0.1-3.2c-0.2-2.1-1.1-3.1-3.1-3.5l0,6.7H25.9z"/>
18
+ </svg>
@@ -0,0 +1,4 @@
1
+ declare module '*.svg' {
2
+ const content: string;
3
+ export default content;
4
+ }
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="679px" height="158px" viewBox="0 0 679 158" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>PF-HorizontalLogo-Reverse </title>
4
+ <defs>
5
+ <linearGradient x1="100%" y1="1.31838984e-13%" x2="40.4021492%" y2="59.4473677%" id="linearGradient-1">
6
+ <stop stop-color="#FFFFFF" offset="0%"></stop>
7
+ <stop stop-color="#FFFFFF" stop-opacity="0.498497596" offset="100%"></stop>
8
+ </linearGradient>
9
+ </defs>
10
+ <g id="PF-HorizontalLogo-Reverse" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
11
+ <g id="Group" transform="translate(-0.000000, 0.000000)">
12
+ <path d="M61.7658863,0 L157.846154,0 L157.846154,96.0802676 C104.782487,96.0802676 61.7658863,53.0636665 61.7658863,0 L61.7658863,0 L61.7658863,0 Z" id="Rectangle-Copy-15" fill="#FFFFFF" opacity="0.401297433"></path>
13
+ <path d="M158,1.84777167 L158,138 C158,149.045695 149.045695,158 138,158 L66.3656919,158 L158,1.84777167 Z M156.152228,3.55271368e-13 L-9.37916411e-13,91.6343081 L-9.37916411e-13,20 C-9.09494702e-13,8.954305 8.954305,3.55271368e-13 20,3.41060513e-13 L156.152228,3.55271368e-13 Z" id="Combined-Shape-Copy-4" fill="url(#linearGradient-1)"></path>
14
+ </g>
15
+ <g id="PatternFly-Copy-11" transform="translate(206.000000, 45.750000)" fill="#FFFFFF" fill-rule="nonzero">
16
+ <path d="M0,65.25 L0,2.25 L33.21,2.25 C37.35,2.25 41.025,3.135 44.235,4.905 C47.445,6.675 49.98,9.09 51.84,12.15 C53.7,15.21 54.63,18.72 54.63,22.68 C54.63,26.46 53.7,29.865 51.84,32.895 C49.98,35.925 47.43,38.31 44.19,40.05 C40.95,41.79 37.29,42.66 33.21,42.66 L15.48,42.66 L15.48,65.25 L0,65.25 Z M15.48,29.88 L31.41,29.88 C33.69,29.88 35.52,29.22 36.9,27.9 C38.28,26.58 38.97,24.87 38.97,22.77 C38.97,20.61 38.28,18.855 36.9,17.505 C35.52,16.155 33.69,15.48 31.41,15.48 L15.48,15.48 L15.48,29.88 Z" id="Shape"></path>
17
+ <path d="M77.04,66.06 C73.68,66.06 70.695,65.43 68.085,64.17 C65.475,62.91 63.435,61.17 61.965,58.95 C60.495,56.73 59.76,54.18 59.76,51.3 C59.76,46.74 61.485,43.215 64.935,40.725 C68.385,38.235 73.2,36.99 79.38,36.99 C83.1,36.99 86.7,37.44 90.18,38.34 L90.18,36 C90.18,31.26 87.15,28.89 81.09,28.89 C77.49,28.89 72.69,30.15 66.69,32.67 L61.47,21.96 C69.15,18.48 76.56,16.74 83.7,16.74 C90.3,16.74 95.43,18.315 99.09,21.465 C102.75,24.615 104.58,29.04 104.58,34.74 L104.58,65.25 L90.18,65.25 L90.18,62.37 C88.26,63.69 86.235,64.635 84.105,65.205 C81.975,65.775 79.62,66.06 77.04,66.06 Z M73.62,51.03 C73.62,52.53 74.28,53.7 75.6,54.54 C76.92,55.38 78.75,55.8 81.09,55.8 C84.69,55.8 87.72,55.05 90.18,53.55 L90.18,47.43 C87.42,46.71 84.54,46.35 81.54,46.35 C79.02,46.35 77.07,46.755 75.69,47.565 C74.31,48.375 73.62,49.53 73.62,51.03 Z" id="Shape"></path>
18
+ <path d="M137.25,65.88 C125.73,65.88 119.97,60.84 119.97,50.76 L119.97,29.79 L110.34,29.79 L110.34,17.64 L119.97,17.64 L119.97,5.4 L134.55,2.25 L134.55,17.64 L147.87,17.64 L147.87,29.79 L134.55,29.79 L134.55,47.88 C134.55,49.98 135.015,51.465 135.945,52.335 C136.875,53.205 138.51,53.64 140.85,53.64 C143.01,53.64 145.2,53.31 147.42,52.65 L147.42,64.44 C146.1,64.86 144.42,65.205 142.38,65.475 C140.34,65.745 138.63,65.88 137.25,65.88 Z" id="Path"></path>
19
+ <path d="M177.57,65.88 C166.05,65.88 160.29,60.84 160.29,50.76 L160.29,29.79 L150.66,29.79 L150.66,17.64 L160.29,17.64 L160.29,5.4 L174.87,2.25 L174.87,17.64 L188.19,17.64 L188.19,29.79 L174.87,29.79 L174.87,47.88 C174.87,49.98 175.335,51.465 176.265,52.335 C177.195,53.205 178.83,53.64 181.17,53.64 C183.33,53.64 185.52,53.31 187.74,52.65 L187.74,64.44 C186.42,64.86 184.74,65.205 182.7,65.475 C180.66,65.745 178.95,65.88 177.57,65.88 Z" id="Path"></path>
20
+ <path d="M217.62,66.15 C212.76,66.15 208.365,65.055 204.435,62.865 C200.505,60.675 197.4,57.72 195.12,54 C192.84,50.28 191.7,46.11 191.7,41.49 C191.7,36.87 192.795,32.7 194.985,28.98 C197.175,25.26 200.16,22.305 203.94,20.115 C207.72,17.925 211.92,16.83 216.54,16.83 C221.22,16.83 225.36,17.955 228.96,20.205 C232.56,22.455 235.395,25.53 237.465,29.43 C239.535,33.33 240.57,37.8 240.57,42.84 L240.57,46.44 L206.64,46.44 C207.6,48.66 209.1,50.475 211.14,51.885 C213.18,53.295 215.58,54 218.34,54 C222.42,54 225.6,52.8 227.88,50.4 L237.51,58.95 C234.51,61.47 231.435,63.3 228.285,64.44 C225.135,65.58 221.58,66.15 217.62,66.15 Z M206.37,36.27 L226.26,36.27 C225.48,33.99 224.205,32.16 222.435,30.78 C220.665,29.4 218.61,28.71 216.27,28.71 C213.87,28.71 211.8,29.37 210.06,30.69 C208.32,32.01 207.09,33.87 206.37,36.27 Z" id="Shape"></path>
21
+ <path d="M247.41,65.25 L247.41,17.64 L261.99,17.64 L261.99,22.41 C265.23,18.51 269.4,16.56 274.5,16.56 C277.08,16.62 278.91,17.01 279.99,17.73 L279.99,30.42 C277.95,29.46 275.64,28.98 273.06,28.98 C270.78,28.98 268.665,29.505 266.715,30.555 C264.765,31.605 263.19,33.09 261.99,35.01 L261.99,65.25 L247.41,65.25 Z" id="Path"></path>
22
+ <path d="M286.29,65.25 L286.29,17.64 L300.87,17.64 L300.87,20.88 C304.47,18.12 308.73,16.74 313.65,16.74 C317.37,16.74 320.655,17.55 323.505,19.17 C326.355,20.79 328.59,23.04 330.21,25.92 C331.83,28.8 332.64,32.13 332.64,35.91 L332.64,65.25 L318.06,65.25 L318.06,37.89 C318.06,35.25 317.28,33.15 315.72,31.59 C314.16,30.03 312.06,29.25 309.42,29.25 C305.76,29.25 302.91,30.51 300.87,33.03 L300.87,65.25 L286.29,65.25 Z" id="Path"></path>
23
+ <polygon id="Path" points="342 65.25 342 2.25 392.04 2.25 392.04 15.66 357.48 15.66 357.48 27.45 380.52 27.45 380.52 40.41 357.48 40.41 357.48 65.25"></polygon>
24
+ <polygon id="Path" points="399.96 65.25 399.96 2.25 414.54 0 414.54 65.25"></polygon>
25
+ <path d="M429.21,84.69 C428.07,84.69 426.96,84.645 425.88,84.555 C424.8,84.465 423.9,84.33 423.18,84.15 L423.18,71.73 C424.38,71.97 425.88,72.09 427.68,72.09 C432.36,72.09 435.51,70.05 437.13,65.97 L437.13,65.88 L418.86,17.64 L434.97,17.64 L445.5,47.61 L457.74,17.64 L473.49,17.64 L452.16,67.68 C450.42,71.82 448.5,75.135 446.4,77.625 C444.3,80.115 441.87,81.915 439.11,83.025 C436.35,84.135 433.05,84.69 429.21,84.69 Z" id="Path"></path>
26
+ </g>
27
+ </g>
28
+ </svg>
@@ -17,7 +17,7 @@ import {
17
17
  } from '@patternfly/react-core';
18
18
  import { Table, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
19
19
  import { rows, columns, SampleDataRow } from '@patternfly/react-table/dist/esm/demos/sampleData';
20
- import { DashboardWrapper } from '@patternfly/react-core/dist/esm/demos/DashboardWrapper';
20
+ import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper';
21
21
 
22
22
  export const TableBulkSelect: React.FunctionComponent = () => {
23
23
  const [isBulkSelectDropdownOpen, setIsBulkSelectDropdownOpen] = React.useState(false);
@@ -154,7 +154,7 @@ export const TableBulkSelect: React.FunctionComponent = () => {
154
154
  <Table aria-label="Selectable table">
155
155
  <Thead>
156
156
  <Tr>
157
- <Th />
157
+ <Th screenReaderText="Row select" />
158
158
  <Th key={0}>{columns[0]}</Th>
159
159
  <Th key={1}>{columns[1]}</Th>
160
160
  <Th key={2}>{columns[2]}</Th>
@@ -3,6 +3,7 @@ import React from 'react';
3
3
  import {
4
4
  Button,
5
5
  Card,
6
+ Content,
6
7
  DataList,
7
8
  DataListCheck,
8
9
  DataListItem,
@@ -20,15 +21,12 @@ import {
20
21
  OverflowMenuItem,
21
22
  PageSection,
22
23
  Pagination,
23
- PaginationVariant,
24
- Text,
25
- TextContent,
26
- TextVariants
24
+ PaginationVariant
27
25
  } from '@patternfly/react-core';
28
26
  import { Table, TableText, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table';
29
27
  import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon';
30
28
  import SortAmountDownIcon from '@patternfly/react-icons/dist/esm/icons/sort-amount-down-icon';
31
- import { DashboardWrapper } from '@patternfly/react-core/dist/esm/demos/DashboardWrapper';
29
+ import { DashboardWrapper } from '@patternfly/react-table/dist/esm/demos/DashboardWrapper';
32
30
  import { capitalize } from '@patternfly/react-table/src/components/Table/utils/utils';
33
31
  import { rows, columns, SampleDataRow } from '@patternfly/react-table/dist/esm/demos/sampleData';
34
32
 
@@ -213,19 +211,19 @@ export const TableColumnManagement: React.FunctionComponent = () => {
213
211
  isOpen={isModalOpen}
214
212
  variant="small"
215
213
  description={
216
- <TextContent>
217
- <Text component={TextVariants.p}>Selected categories will be displayed in the table.</Text>
214
+ <Content>
215
+ <p>Selected categories will be displayed in the table.</p>
218
216
  <Button isInline onClick={selectAllColumns} variant="link">
219
217
  Select all
220
218
  </Button>
221
- </TextContent>
219
+ </Content>
222
220
  }
223
221
  onClose={handleModalToggle}
224
222
  actions={[
225
223
  <Button key="save" variant="primary" onClick={onSave}>
226
224
  Save
227
225
  </Button>,
228
- <Button key="cancel" variant="secondary" onClick={handleModalToggle}>
226
+ <Button key="cancel" variant="link" onClick={handleModalToggle}>
229
227
  Cancel
230
228
  </Button>
231
229
  ]}