@patternfly/react-core 6.3.0-prerelease.1 → 6.3.0-prerelease.11

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 (232) hide show
  1. package/CHANGELOG.md +48 -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/ClipboardCopy/package.json +1 -1
  21. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  22. package/dist/dynamic/components/Content/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/Drawer/package.json +1 -1
  28. package/dist/dynamic/components/Dropdown/package.json +1 -1
  29. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  30. package/dist/dynamic/components/EmptyState/package.json +1 -1
  31. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  32. package/dist/dynamic/components/FileUpload/package.json +1 -1
  33. package/dist/dynamic/components/Form/package.json +1 -1
  34. package/dist/dynamic/components/FormSelect/package.json +1 -1
  35. package/dist/dynamic/components/HelperText/package.json +1 -1
  36. package/dist/dynamic/components/Hint/package.json +1 -1
  37. package/dist/dynamic/components/Icon/package.json +1 -1
  38. package/dist/dynamic/components/InputGroup/package.json +1 -1
  39. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  40. package/dist/dynamic/components/Label/package.json +1 -1
  41. package/dist/dynamic/components/List/package.json +1 -1
  42. package/dist/dynamic/components/LoginPage/package.json +1 -1
  43. package/dist/dynamic/components/Masthead/package.json +1 -1
  44. package/dist/dynamic/components/Menu/package.json +1 -1
  45. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  46. package/dist/dynamic/components/Modal/package.json +1 -1
  47. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  48. package/dist/dynamic/components/Nav/package.json +1 -1
  49. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  50. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  51. package/dist/dynamic/components/NumberInput/package.json +1 -1
  52. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  53. package/dist/dynamic/components/Page/package.json +1 -1
  54. package/dist/dynamic/components/Pagination/package.json +1 -1
  55. package/dist/dynamic/components/Panel/package.json +1 -1
  56. package/dist/dynamic/components/Popover/package.json +1 -1
  57. package/dist/dynamic/components/Progress/package.json +1 -1
  58. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  59. package/dist/dynamic/components/Radio/package.json +1 -1
  60. package/dist/dynamic/components/SearchInput/package.json +1 -1
  61. package/dist/dynamic/components/Select/package.json +1 -1
  62. package/dist/dynamic/components/Sidebar/package.json +1 -1
  63. package/dist/dynamic/components/SimpleList/package.json +1 -1
  64. package/dist/dynamic/components/Skeleton/package.json +1 -1
  65. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  66. package/dist/dynamic/components/Slider/package.json +1 -1
  67. package/dist/dynamic/components/Spinner/package.json +1 -1
  68. package/dist/dynamic/components/Switch/package.json +1 -1
  69. package/dist/dynamic/components/Tabs/package.json +1 -1
  70. package/dist/dynamic/components/TextArea/package.json +1 -1
  71. package/dist/dynamic/components/TextInput/package.json +1 -1
  72. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  73. package/dist/dynamic/components/TimePicker/package.json +1 -1
  74. package/dist/dynamic/components/Timestamp/package.json +1 -1
  75. package/dist/dynamic/components/Title/package.json +1 -1
  76. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  77. package/dist/dynamic/components/Toolbar/package.json +1 -1
  78. package/dist/dynamic/components/Tooltip/package.json +1 -1
  79. package/dist/dynamic/components/TreeView/package.json +1 -1
  80. package/dist/dynamic/components/Truncate/package.json +1 -1
  81. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  82. package/dist/dynamic/components/Wizard/package.json +1 -1
  83. package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
  84. package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
  85. package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/package.json +1 -1
  90. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  91. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  92. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  93. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  94. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  95. package/dist/dynamic/helpers/constants/package.json +1 -1
  96. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  97. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  98. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  99. package/dist/dynamic/helpers/package.json +1 -1
  100. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  101. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  102. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  103. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  104. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  105. package/dist/dynamic/helpers/util/package.json +1 -1
  106. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  107. package/dist/dynamic/layouts/Flex/package.json +1 -1
  108. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  109. package/dist/dynamic/layouts/Grid/package.json +1 -1
  110. package/dist/dynamic/layouts/Level/package.json +1 -1
  111. package/dist/dynamic/layouts/Split/package.json +1 -1
  112. package/dist/dynamic/layouts/Stack/package.json +1 -1
  113. package/dist/dynamic/styles/package.json +1 -1
  114. package/dist/esm/components/Form/FormGroupLabelHelp.js +2 -2
  115. package/dist/esm/components/Form/FormGroupLabelHelp.js.map +1 -1
  116. package/dist/esm/components/Nav/NavExpandable.d.ts.map +1 -1
  117. package/dist/esm/components/Nav/NavExpandable.js +1 -1
  118. package/dist/esm/components/Nav/NavExpandable.js.map +1 -1
  119. package/dist/esm/components/Truncate/Truncate.d.ts.map +1 -1
  120. package/dist/esm/components/Truncate/Truncate.js +6 -3
  121. package/dist/esm/components/Truncate/Truncate.js.map +1 -1
  122. package/dist/esm/demos/sampleData.d.ts.map +1 -1
  123. package/dist/esm/demos/sampleData.js +225 -226
  124. package/dist/esm/demos/sampleData.js.map +1 -1
  125. package/dist/esm/demos/sampleDataRTL.d.ts +7 -0
  126. package/dist/esm/demos/sampleDataRTL.d.ts.map +1 -0
  127. package/dist/esm/demos/sampleDataRTL.js +128 -0
  128. package/dist/esm/demos/sampleDataRTL.js.map +1 -0
  129. package/dist/js/components/Form/FormGroupLabelHelp.js +2 -2
  130. package/dist/js/components/Form/FormGroupLabelHelp.js.map +1 -1
  131. package/dist/js/components/Nav/NavExpandable.d.ts.map +1 -1
  132. package/dist/js/components/Nav/NavExpandable.js +1 -1
  133. package/dist/js/components/Nav/NavExpandable.js.map +1 -1
  134. package/dist/js/components/Truncate/Truncate.d.ts.map +1 -1
  135. package/dist/js/components/Truncate/Truncate.js +6 -3
  136. package/dist/js/components/Truncate/Truncate.js.map +1 -1
  137. package/dist/js/demos/sampleData.d.ts.map +1 -1
  138. package/dist/js/demos/sampleData.js +225 -226
  139. package/dist/js/demos/sampleData.js.map +1 -1
  140. package/dist/js/demos/sampleDataRTL.d.ts +7 -0
  141. package/dist/js/demos/sampleDataRTL.d.ts.map +1 -0
  142. package/dist/js/demos/sampleDataRTL.js +131 -0
  143. package/dist/js/demos/sampleDataRTL.js.map +1 -0
  144. package/dist/umd/assets/{output-ZyJGbFvY.css → output-6ExHwErv.css} +16177 -16177
  145. package/dist/umd/react-core.min.js +3 -3
  146. package/helpers/package.json +1 -1
  147. package/layouts/package.json +1 -1
  148. package/next/package.json +1 -1
  149. package/package.json +2 -2
  150. package/src/components/Form/FormGroupLabelHelp.tsx +2 -2
  151. package/src/components/LoginPage/examples/LoginPageBasic.tsx +1 -1
  152. package/src/components/LoginPage/examples/LoginPageLanguageSelect.tsx +1 -1
  153. package/src/components/LoginPage/examples/LoginPageShowHidePassword.tsx +1 -1
  154. package/src/components/Nav/NavExpandable.tsx +6 -1
  155. package/src/components/Nav/__tests__/Generated/__snapshots__/NavExpandable.test.tsx.snap +1 -0
  156. package/src/components/Nav/__tests__/NavExpandable.test.tsx +15 -0
  157. package/src/components/Nav/__tests__/__snapshots__/Nav.test.tsx.snap +3 -0
  158. package/src/components/Page/examples/Page.md +1 -1
  159. package/src/components/Page/examples/PageCenteredSection.tsx +3 -4
  160. package/src/components/Page/examples/PageGroupSection.tsx +9 -3
  161. package/src/components/Page/examples/PageHorizontalNav.tsx +9 -3
  162. package/src/components/Page/examples/PageMainSectionPadding.tsx +12 -4
  163. package/src/components/Page/examples/PageMainSectionVariations.tsx +6 -6
  164. package/src/components/Page/examples/PageMultipleSidebarBody.tsx +9 -3
  165. package/src/components/Page/examples/PageUncontrolledNav.tsx +9 -3
  166. package/src/components/Page/examples/PageVerticalNav.tsx +9 -3
  167. package/src/components/Page/examples/PageWithOrWithoutFill.tsx +8 -4
  168. package/src/components/Select/examples/Select.md +3 -26
  169. package/src/components/Skeleton/examples/SkeletonText.tsx +0 -1
  170. package/src/components/Timestamp/examples/TimestampBasicFormats.tsx +1 -1
  171. package/src/components/Timestamp/examples/TimestampDefaultTooltip.tsx +1 -1
  172. package/src/components/Truncate/Truncate.tsx +8 -3
  173. package/src/components/Truncate/__tests__/Truncate.test.tsx +4 -2
  174. package/src/components/Truncate/__tests__/__snapshots__/Truncate.test.tsx.snap +2 -2
  175. package/src/demos/Banner.md +6 -6
  176. package/src/demos/CardDemos.md +1 -1
  177. package/src/demos/CardView/examples/CardView.tsx +9 -4
  178. package/src/demos/DataList/examples/DataListActionable.tsx +5 -3
  179. package/src/demos/DataList/examples/DataListBasic.tsx +2 -2
  180. package/src/demos/DataList/examples/DataListExpandableControlInToolbar.tsx +2 -2
  181. package/src/demos/DataList/examples/DataListStaticBottomPagination.tsx +4 -2
  182. package/src/demos/DescriptionList/examples/DescriptionListBasic.tsx +4 -4
  183. package/src/demos/DescriptionList/examples/DescriptionListInDrawer.tsx +5 -3
  184. package/src/demos/JumpLinks.md +5 -5
  185. package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +3 -3
  186. package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +3 -3
  187. package/src/demos/PasswordGenerator.md +1 -1
  188. package/src/demos/RTL/RTL.md +1 -0
  189. package/src/demos/RTL/examples/PaginatedTable.tsx +18 -46
  190. package/src/demos/Tabs.md +6 -6
  191. package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +6 -6
  192. package/src/demos/examples/BackToTop/BackToTopNameDemo.tsx +2 -2
  193. package/src/demos/examples/Card/CardAggregateStatus.tsx +2 -6
  194. package/src/demos/examples/Card/CardDetails.tsx +2 -3
  195. package/src/demos/examples/Card/CardEventsView.tsx +2 -3
  196. package/src/demos/examples/Card/CardLogView.tsx +2 -3
  197. package/src/demos/examples/Card/CardStatus.tsx +0 -1
  198. package/src/demos/examples/Card/CardUtilizationDemo3.tsx +0 -1
  199. package/src/demos/examples/Masthead/MastheadWithHorizontalNav.tsx +5 -3
  200. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +3 -3
  201. package/src/demos/examples/Nav/NavDefault.tsx +3 -3
  202. package/src/demos/examples/Nav/NavDrilldown.tsx +1 -1
  203. package/src/demos/examples/Nav/NavExpandable.tsx +3 -3
  204. package/src/demos/examples/Nav/NavFlyout.tsx +9 -3
  205. package/src/demos/examples/Nav/NavGrouped.tsx +14 -6
  206. package/src/demos/examples/Nav/NavHorizontal.tsx +3 -3
  207. package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +5 -5
  208. package/src/demos/examples/Nav/NavManual.tsx +3 -3
  209. package/src/demos/examples/Nav/NavWithSubnav.tsx +5 -5
  210. package/src/demos/examples/Page/PageContextSelector.tsx +5 -3
  211. package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +3 -3
  212. package/src/demos/examples/Page/PageStickySectionGroup.tsx +3 -3
  213. package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +3 -3
  214. package/src/demos/examples/PrimaryDetail/PrimaryDetailCardView.tsx +5 -4
  215. package/src/demos/examples/PrimaryDetail/PrimaryDetailContentPadding.tsx +3 -3
  216. package/src/demos/examples/PrimaryDetail/PrimaryDetailDataListInCard.tsx +3 -3
  217. package/src/demos/examples/PrimaryDetail/PrimaryDetailFullPage.tsx +3 -3
  218. package/src/demos/examples/PrimaryDetail/PrimaryDetailInlineModifier.tsx +3 -3
  219. package/src/demos/examples/PrimaryDetail/PrimaryDetailSimpleListInCard.tsx +3 -3
  220. package/src/demos/examples/Skeleton/SkeletonCard.tsx +5 -3
  221. package/src/demos/examples/Tabs/ModalTabs.tsx +3 -3
  222. package/src/demos/examples/Tabs/NestedTabs.tsx +2 -2
  223. package/src/demos/examples/Tabs/NestedUnindentedTabs.tsx +2 -2
  224. package/src/demos/examples/Tabs/TabsAndTable.tsx +3 -3
  225. package/src/demos/examples/Toolbar/ConsoleLogViewerToolbar.tsx +1 -1
  226. package/src/demos/examples/Wizard/InModal.tsx +1 -1
  227. package/src/demos/examples/Wizard/InPage.tsx +1 -1
  228. package/src/demos/examples/Wizard/InPageWithDrawer.tsx +3 -3
  229. package/src/demos/examples/Wizard/InPageWithDrawerInformationalStep.tsx +3 -3
  230. package/src/demos/sampleData.tsx +225 -227
  231. package/src/demos/sampleDataRTL.tsx +133 -0
  232. package/src/demos/RTL/examples/PaginatedTable.jsx +0 -504
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"6.3.0-prerelease.0","private":true}
1
+ {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"6.3.0-prerelease.10","private":true}
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"6.3.0-prerelease.0","private":true}
1
+ {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"6.3.0-prerelease.10","private":true}
package/next/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"6.3.0-prerelease.0","private":true}
1
+ {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"6.3.0-prerelease.10","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "6.3.0-prerelease.1",
3
+ "version": "6.3.0-prerelease.11",
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",
@@ -63,5 +63,5 @@
63
63
  "react": "^17 || ^18 || ^19",
64
64
  "react-dom": "^17 || ^18 || ^19"
65
65
  },
66
- "gitHead": "dfd5811438352c387d46b86489353e3de5d4f271"
66
+ "gitHead": "23d5f17d1a0b2f51ca88bb337b4e77f391094edb"
67
67
  }
@@ -1,7 +1,7 @@
1
1
  import { forwardRef, useRef } from 'react';
2
2
  import { Button, ButtonProps } from '../Button';
3
- import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
4
3
  import { KeyTypes } from '../../helpers/constants';
4
+ import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
5
5
 
6
6
  /** A help button to be passed to the FormGroup's labelHelp property. This should be wrapped or linked
7
7
  * to our Popover component.
@@ -45,7 +45,7 @@ const FormGroupLabelHelpBase: React.FunctionComponent<FormGroupLabelHelpProps> =
45
45
  variant="plain"
46
46
  hasNoPadding
47
47
  {...props}
48
- icon={<QuestionCircleIcon />}
48
+ icon={<HelpIcon />}
49
49
  />
50
50
  );
51
51
  };
@@ -116,7 +116,7 @@ export const SimpleLoginPage: React.FunctionComponent = () => {
116
116
  footerListVariants={ListVariant.inline}
117
117
  brandImgSrc={brandImg}
118
118
  brandImgAlt="PatternFly logo"
119
- backgroundImgSrc="/assets/images/pfbg-icon.svg"
119
+ backgroundImgSrc="/assets/images/pf-background.svg"
120
120
  footerListItems={listItem}
121
121
  textContent="This is placeholder text only. Use this area to place any information or introductory message about your application that may be relevant to users."
122
122
  loginTitle="Log in to your account"
@@ -189,7 +189,7 @@ export const LoginPageLanguageSelect: React.FunctionComponent = () => {
189
189
  footerListVariants={ListVariant.inline}
190
190
  brandImgSrc={brandImg}
191
191
  brandImgAlt="PatternFly logo"
192
- backgroundImgSrc="/assets/images/pfbg-icon.svg"
192
+ backgroundImgSrc="/assets/images/pf-background.svg"
193
193
  footerListItems={listItem}
194
194
  textContent="This is placeholder text only. Use this area to place any information or introductory message about your application that may be relevant to users."
195
195
  loginTitle="Log in to your account"
@@ -117,7 +117,7 @@ export const LoginPageHideShowPassword: React.FunctionComponent = () => {
117
117
  footerListVariants={ListVariant.inline}
118
118
  brandImgSrc={brandImg}
119
119
  brandImgAlt="PatternFly logo"
120
- backgroundImgSrc="/assets/images/pfbg-icon.svg"
120
+ backgroundImgSrc="/assets/images/pf-background.svg"
121
121
  footerListItems={listItem}
122
122
  textContent="This is placeholder text only. Use this area to place any information or introductory message about your application that may be relevant to users."
123
123
  loginTitle="Log in to your account"
@@ -141,7 +141,12 @@ class NavExpandable extends Component<NavExpandableProps, NavExpandableState> {
141
141
  </button>
142
142
  )}
143
143
  </PageSidebarContext.Consumer>
144
- <section className={css(styles.navSubnav)} aria-labelledby={this.id} hidden={expandedState ? null : true}>
144
+ <section
145
+ className={css(styles.navSubnav)}
146
+ aria-labelledby={this.id}
147
+ hidden={expandedState ? null : true}
148
+ {...(!expandedState && { inert: '' })}
149
+ >
145
150
  {srText && (
146
151
  <h2 className="pf-v6-screen-reader" id={this.id}>
147
152
  {srText}
@@ -39,6 +39,7 @@ exports[`NavExpandable should match snapshot (auto-generated) 1`] = `
39
39
  aria-labelledby="''"
40
40
  class="pf-v6-c-nav__subnav"
41
41
  hidden=""
42
+ inert=""
42
43
  >
43
44
  <h2
44
45
  class="pf-v6-screen-reader"
@@ -0,0 +1,15 @@
1
+ import { render, screen } from '@testing-library/react';
2
+ import '@testing-library/jest-dom';
3
+ import { NavExpandable } from '../NavExpandable';
4
+
5
+ test('Renders with the inert attribute by default', () => {
6
+ render(<NavExpandable id="grp-1" title="NavExpandable"></NavExpandable>);
7
+
8
+ expect(screen.getByLabelText('NavExpandable')).toHaveAttribute('inert', '');
9
+ });
10
+
11
+ test('Does not render with the inert attribute when isExpanded is true', () => {
12
+ render(<NavExpandable id="grp-1" title="NavExpandable" isExpanded={true}></NavExpandable>);
13
+
14
+ expect(screen.getByLabelText('NavExpandable')).not.toHaveAttribute('inert', '');
15
+ });
@@ -223,6 +223,7 @@ exports[`Nav Expandable Nav List - Trigger toggle 1`] = `
223
223
  aria-labelledby="grp-1"
224
224
  class="pf-v6-c-nav__subnav"
225
225
  hidden=""
226
+ inert=""
226
227
  >
227
228
  <ul
228
229
  class="pf-v6-c-nav__list"
@@ -355,6 +356,7 @@ exports[`Nav Expandable Nav List 1`] = `
355
356
  aria-labelledby="grp-1"
356
357
  class="pf-v6-c-nav__subnav"
357
358
  hidden=""
359
+ inert=""
358
360
  >
359
361
  <ul
360
362
  class="pf-v6-c-nav__list"
@@ -486,6 +488,7 @@ exports[`Nav Expandable Nav List with aria label 1`] = `
486
488
  aria-labelledby="grp-1"
487
489
  class="pf-v6-c-nav__subnav"
488
490
  hidden=""
491
+ inert=""
489
492
  >
490
493
  <h2
491
494
  class="pf-v6-screen-reader"
@@ -8,7 +8,7 @@ propComponents:
8
8
 
9
9
  import { useState } from 'react';
10
10
  import BarsIcon from '@patternfly/react-icons/dist/js/icons/bars-icon';
11
- import c_page_section_m_limit_width_MaxWidth from '@patternfly/react-tokens/dist/esm/c_page_section_m_limit_width_MaxWidth';
11
+ import pageSectionWidthLimitMaxWidth from '@patternfly/react-tokens/dist/esm/c_page_section_m_limit_width_MaxWidth';
12
12
 
13
13
  ## Examples
14
14
 
@@ -18,8 +18,7 @@ import {
18
18
  CardBody
19
19
  } from '@patternfly/react-core';
20
20
  import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
21
- /* eslint-disable camelcase */
22
- import c_page_section_m_limit_width_MaxWidth from '@patternfly/react-tokens/dist/esm/c_page_section_m_limit_width_MaxWidth';
21
+ import pageSectionWidthLimitMaxWidth from '@patternfly/react-tokens/dist/esm/c_page_section_m_limit_width_MaxWidth';
23
22
 
24
23
  export const PageCenteredSection: React.FunctionComponent = () => {
25
24
  const [isSidebarOpen, setIsSidebarOpen] = useState(true);
@@ -68,11 +67,11 @@ export const PageCenteredSection: React.FunctionComponent = () => {
68
67
 
69
68
  return (
70
69
  <Page masthead={masthead} sidebar={sidebar}>
71
- <PageSection isWidthLimited isCenterAligned>
70
+ <PageSection isWidthLimited isCenterAligned aria-label="width limited page section">
72
71
  <Card>
73
72
  <CardBody>
74
73
  When a width limited page section is wider than the value of
75
- <code>{c_page_section_m_limit_width_MaxWidth.name}</code>, the section will be centered in the main section.
74
+ <code>{pageSectionWidthLimitMaxWidth.name}</code>, the section will be centered in the main section.
76
75
  <br />
77
76
  <br />
78
77
  The content in this example is placed in a card to better illustrate how the section behaves when it is
@@ -101,10 +101,16 @@ export const PageGroupSection: React.FunctionComponent = () => {
101
101
  </BreadcrumbItem>
102
102
  </Breadcrumb>
103
103
  </PageBreadcrumb>
104
- <PageSection>Grouped section</PageSection>
104
+ <PageSection aria-labelledby="grouped-section">
105
+ <h2 id="grouped-section">Grouped section</h2>
106
+ </PageSection>
105
107
  </PageGroup>
106
- <PageSection>Section 1</PageSection>
107
- <PageSection>Section 2</PageSection>
108
+ <PageSection aria-labelledby="section-1">
109
+ <h2 id="section-1">Grouped example section 1</h2>
110
+ </PageSection>
111
+ <PageSection aria-labelledby="section-2">
112
+ <h2 id="section-2">Grouped example section 2</h2>
113
+ </PageSection>
108
114
  </Page>
109
115
  );
110
116
  };
@@ -36,9 +36,15 @@ export const PageHorizontalNav: React.FunctionComponent = () => {
36
36
 
37
37
  return (
38
38
  <Page masthead={masthead}>
39
- <PageSection>Section 1</PageSection>
40
- <PageSection variant="secondary">Section 2 with secondary variant styling</PageSection>
41
- <PageSection>Section 3</PageSection>
39
+ <PageSection aria-labelledby="section-1">
40
+ <h2 id="section-1">Horizontal nav example section 1</h2>
41
+ </PageSection>
42
+ <PageSection variant="secondary" aria-labelledby="section-2">
43
+ <h2 id="section-2">Horizontal nav example section 2 with secondary variant styling</h2>
44
+ </PageSection>
45
+ <PageSection aria-labelledby="section-3">
46
+ <h2 id="section-3">Horizontal nav example section 3</h2>
47
+ </PageSection>
42
48
  </Page>
43
49
  );
44
50
  };
@@ -64,10 +64,18 @@ export const PageMainSectionPadding: React.FunctionComponent = () => {
64
64
 
65
65
  return (
66
66
  <Page masthead={masthead} sidebar={sidebar}>
67
- <PageSection>Section with default padding</PageSection>
68
- <PageSection padding={{ default: 'noPadding' }}>Section with no padding</PageSection>
69
- <PageSection padding={{ default: 'noPadding', md: 'padding' }}>Section with padding on medium</PageSection>
70
- <PageSection padding={{ md: 'noPadding' }}>Section with no padding on medium</PageSection>
67
+ <PageSection aria-labelledby="section-1">
68
+ <h2 id="section-1">Section with default padding</h2>
69
+ </PageSection>
70
+ <PageSection padding={{ default: 'noPadding' }} aria-labelledby="section-2">
71
+ <h2 id="section-2">Section with no padding</h2>
72
+ </PageSection>
73
+ <PageSection padding={{ default: 'noPadding', md: 'padding' }} aria-labelledby="section-3">
74
+ <h2 id="section-3">Section with padding on medium</h2>
75
+ </PageSection>
76
+ <PageSection padding={{ md: 'noPadding' }} aria-labelledby="section-4">
77
+ <h2 id="section-4">Section with no padding on medium</h2>
78
+ </PageSection>
71
79
  </Page>
72
80
  );
73
81
  };
@@ -64,22 +64,22 @@ export const PageMainSectionPadding: React.FunctionComponent = () => {
64
64
 
65
65
  return (
66
66
  <Page header={header} sidebar={sidebar}>
67
- <PageSection type="subnav">
67
+ <PageSection type="subnav" aria-label="With subnav type">
68
68
  Section with <code>type="subnav"</code> for horizontal subnav navigation
69
69
  </PageSection>
70
- <PageSection type="nav">
70
+ <PageSection type="nav" aria-label="With nav type">
71
71
  Section with <code>type="nav"</code> for tertiary navigation
72
72
  </PageSection>
73
- <PageSection type="tabs">
73
+ <PageSection type="tabs" aria-label="With tabs type">
74
74
  Section with <code>type="tabs"</code> for tabs
75
75
  </PageSection>
76
- <PageSection type="breadcrumb">
76
+ <PageSection type="breadcrumb" aria-label="With breadcrumb type">
77
77
  Section with <code>type="breadcrumb"</code> for breadcrumbs
78
78
  </PageSection>
79
- <PageSection>
79
+ <PageSection aria-label="With default type">
80
80
  Section without <code>type</code> prop or <code>type="default"</code> for main sections
81
81
  </PageSection>
82
- <PageSection type="wizard">
82
+ <PageSection type="wizard" aria-label="With wizard type">
83
83
  Section with <code>type="wizard"</code> for wizards
84
84
  </PageSection>
85
85
  </Page>
@@ -71,9 +71,15 @@ export const PageMultipleSidebarBody: React.FunctionComponent = () => {
71
71
 
72
72
  return (
73
73
  <Page masthead={masthead} sidebar={sidebar}>
74
- <PageSection>Section 1</PageSection>
75
- <PageSection>Section 2</PageSection>
76
- <PageSection>Section 3</PageSection>
74
+ <PageSection aria-labelledby="section-1">
75
+ <h2 id="section-1">Multiple sidebar body example section 1</h2>
76
+ </PageSection>
77
+ <PageSection aria-labelledby="section-2">
78
+ <h2 id="section-2">Multiple sidebar body example section 2</h2>
79
+ </PageSection>
80
+ <PageSection aria-labelledby="section-3">
81
+ <h2 id="section-3">Multiple sidebar body example section 3</h2>
82
+ </PageSection>
77
83
  </Page>
78
84
  );
79
85
  };
@@ -51,9 +51,15 @@ export const PageUncontrolledNav: React.FunctionComponent = () => {
51
51
 
52
52
  return (
53
53
  <Page isManagedSidebar masthead={masthead} sidebar={sidebar}>
54
- <PageSection>Section 1</PageSection>
55
- <PageSection>Section 2</PageSection>
56
- <PageSection>Section 3</PageSection>
54
+ <PageSection aria-labelledby="section-1">
55
+ <h2 id="section-1">Uncontrolled nav example section 1</h2>
56
+ </PageSection>
57
+ <PageSection aria-labelledby="section-2">
58
+ <h2 id="section-2">Uncontrolled nav example section 2</h2>
59
+ </PageSection>
60
+ <PageSection aria-labelledby="section-3">
61
+ <h2 id="section-3">Uncontrolled nav example section 3</h2>
62
+ </PageSection>
57
63
  </Page>
58
64
  );
59
65
  };
@@ -64,9 +64,15 @@ export const PageVerticalNav: React.FunctionComponent = () => {
64
64
 
65
65
  return (
66
66
  <Page masthead={masthead} sidebar={sidebar}>
67
- <PageSection>Section 1</PageSection>
68
- <PageSection variant="secondary">Section 2 with secondary variant styling</PageSection>
69
- <PageSection>Section 3</PageSection>
67
+ <PageSection aria-labelledby="section-1">
68
+ <h2 id="section-1">Vertical nav example section 1</h2>
69
+ </PageSection>
70
+ <PageSection variant="secondary" aria-labelledby="section-2">
71
+ <h2 id="section-2">Vertical nav example section 2 with secondary variant styling</h2>
72
+ </PageSection>
73
+ <PageSection aria-labelledby="section-3">
74
+ <h2 id="section-3">Vertical nav example section 3</h2>
75
+ </PageSection>
70
76
  </Page>
71
77
  );
72
78
  };
@@ -64,11 +64,15 @@ export const PageWithOrWithoutFill: React.FunctionComponent = () => {
64
64
 
65
65
  return (
66
66
  <Page isContentFilled masthead={masthead} sidebar={sidebar}>
67
- <PageSection>A default page section</PageSection>
68
- <PageSection isFilled={true} variant="secondary">
69
- This section fills the available space.
67
+ <PageSection aria-labelledby="section-1">
68
+ <h2 id="section-1">Section without fill</h2>
69
+ </PageSection>
70
+ <PageSection isFilled={true} variant="secondary" aria-labelledby="section-2">
71
+ <h2 id="section-2">Section with fill</h2>
72
+ </PageSection>
73
+ <PageSection aria-labelledby="section-3">
74
+ <h2 id="section-3">Another section without fill</h2>
70
75
  </PageSection>
71
- <PageSection>A default page section</PageSection>
72
76
  </Page>
73
77
  );
74
78
  };
@@ -78,11 +78,6 @@ By default, the menu toggle will display a badge to indicate the number of items
78
78
  ```
79
79
 
80
80
  ### Typeahead
81
- Typeahead is a select variant that replaces the typical button toggle for opening the select menu with a text input and button toggle combo. As a user enters characters into the text input, the menu options will be filtered to match.
82
-
83
- Typeahead is a select variant that replaces the typical button toggle for opening the select menu with a text input and button toggle combo. As a user enters characters into the text input, the menu options will be filtered to match.
84
-
85
- To make a typeahead, pass `variant=typeahead` into the `<MenuToggle>` component and link an `onClick` function to the `<TextInputGroupMain>` component.
86
81
 
87
82
  Typeahead is a select variant that replaces the typical button toggle for opening the select menu with a text input and button toggle combo. As a user enters characters into the text input, the menu options will be filtered to match.
88
83
 
@@ -93,13 +88,6 @@ To make a typeahead, pass `variant=typeahead` into the `<MenuToggle>` component
93
88
  ```
94
89
 
95
90
  ### Typeahead with create option
96
- If a user enters a value into a typeahead select menu that does not exist, you can allow them to create an option of that value.
97
-
98
- If a user enters a value into a typeahead select menu that does not exist, you can allow them to create an option of that value.
99
-
100
- To enable the creation ability, pass a predetermined `value` into a `<SelectOption>` component. You can use the `placeholder` property to change the default text shown in the text input.
101
-
102
- The following example outlines the code implementation required to create a working typeahead menu that allows for creation.
103
91
 
104
92
  If a user enters a value into a typeahead select menu that does not exist, you can allow them to create an option of that value.
105
93
 
@@ -111,14 +99,9 @@ The following example outlines the code implementation required to create a work
111
99
 
112
100
  ```
113
101
 
114
- ### Multiple typeahead with chips
115
- A multiple typeahead can be used to allow users to select multiple options from a list. Additionally, you can render a chip group to be placed in the select toggle.
116
-
117
- A multiple typeahead can be used to allow users to select multiple options from a list. Additionally, you can render a chip group to be placed in the select toggle.
118
-
119
- When more items than the allowed limit are selected, overflowing items will be hidden under a "more" button. The following example hides items after more than 3 are selected. To show hidden items, select the “more” button. Select "show less" to hide extra items again.
102
+ ### Multiple typeahead with labels
120
103
 
121
- A multiple typeahead can be used to allow users to select multiple options from a list. Additionally, you can render a chip group to be placed in the select toggle.
104
+ A multiple typeahead can be used to allow users to select multiple options from a list. Additionally, you can render a label group to be placed in the select toggle.
122
105
 
123
106
  When more items than the allowed limit are selected, overflowing items will be hidden under a "more" button. The following example hides items after more than 3 are selected. To show hidden items, select the “more” button. Select "show less" to hide extra items again.
124
107
 
@@ -127,20 +110,14 @@ When more items than the allowed limit are selected, overflowing items will be h
127
110
  ```
128
111
 
129
112
  ### Multiple typeahead with create option
130
- If the text that is entered into a typeahead doesn't match a menu item, users can choose to create a new option that matches the text input. You can also combine this create functionality with a chip group to display created items as chips."
131
113
 
132
- If the text that is entered into a typeahead doesn't match a menu item, users can choose to create a new option that matches the text input. You can also combine this create functionality with a chip group to display created items as chips."
133
-
134
- If the text that is entered into a typeahead doesn't match a menu item, users can choose to create a new option that matches the text input. You can also combine this create functionality with a chip group to display created items as chips."
114
+ If the text that is entered into a typeahead doesn't match a menu item, users can choose to create a new option that matches the text input. You can also combine this create functionality with a label group to display created items as labels.
135
115
 
136
116
  ```ts file="./SelectMultiTypeaheadCreatable.tsx"
137
117
 
138
118
  ```
139
119
 
140
120
  ### Multiple typeahead with checkboxes
141
- By default, a multiple typeahead select allows you to select multiple menu items, placing a checkmark beside selected items. Like basic checkbox select menus, you can add checkboxes to your menu items. This approach may be more accurate and comprehensive for more complex menu scenarios like filtering.
142
-
143
- By default, a multiple typeahead select allows you to select multiple menu items, placing a checkmark beside selected items. Like basic checkbox select menus, you can add checkboxes to your menu items. This approach may be more accurate and comprehensive for more complex menu scenarios like filtering.
144
121
 
145
122
  By default, a multiple typeahead select allows you to select multiple menu items, placing a checkmark beside selected items. Like basic checkbox select menus, you can add checkboxes to your menu items. This approach may be more accurate and comprehensive for more complex menu scenarios like filtering.
146
123
 
@@ -1,6 +1,5 @@
1
1
  import { Fragment } from 'react';
2
2
  import { Skeleton } from '@patternfly/react-core';
3
- /* eslint-disable camelcase */
4
3
  import t_global_font_size_4xl from '@patternfly/react-tokens/dist/esm/t_global_font_size_4xl';
5
4
  import t_global_font_size_3xl from '@patternfly/react-tokens/dist/esm/t_global_font_size_3xl';
6
5
  import t_global_font_size_2xl from '@patternfly/react-tokens/dist/esm/t_global_font_size_2xl';
@@ -1,7 +1,7 @@
1
1
  import { Timestamp, TimestampFormat } from '@patternfly/react-core';
2
2
 
3
3
  export const TimestampBasicFormats: React.FunctionComponent = () => {
4
- const currentDate = new Date();
4
+ const currentDate = new Date('2025-04-21T23:35:25');
5
5
 
6
6
  return (
7
7
  <>
@@ -1,7 +1,7 @@
1
1
  import { Timestamp, TimestampTooltipVariant } from '@patternfly/react-core';
2
2
 
3
3
  export const TimestampDefaultTooltip: React.FunctionComponent = () => {
4
- const currentDate = new Date();
4
+ const currentDate = new Date('2025-04-21T14:30:00');
5
5
 
6
6
  return (
7
7
  <>
@@ -142,13 +142,18 @@ export const Truncate: React.FunctionComponent<TruncateProps> = ({
142
142
  setShouldRenderByMaxChars(maxCharsDisplayed > 0);
143
143
  }, [maxCharsDisplayed]);
144
144
 
145
+ const lrmEntity = <Fragment>&lrm;</Fragment>;
146
+ const isStartPosition = position === TruncatePosition.start;
147
+ const isEndPosition = position === TruncatePosition.end;
148
+
145
149
  const renderResizeObserverContent = () => {
146
- if (position === TruncatePosition.end || position === TruncatePosition.start) {
150
+ if (isEndPosition || isStartPosition) {
147
151
  return (
148
152
  <>
149
153
  <span ref={textRef} className={truncateStyles[position]}>
154
+ {isStartPosition && lrmEntity}
150
155
  {content}
151
- {position === TruncatePosition.start && <Fragment>&lrm;</Fragment>}
156
+ {isStartPosition && lrmEntity}
152
157
  </span>
153
158
  </>
154
159
  );
@@ -195,7 +200,7 @@ export const Truncate: React.FunctionComponent<TruncateProps> = ({
195
200
  </>
196
201
  );
197
202
  }
198
- if (position === TruncatePosition.end) {
203
+ if (isEndPosition) {
199
204
  return (
200
205
  <>
201
206
  {renderVisibleContent(content.slice(0, maxCharsDisplayed))}
@@ -1,5 +1,5 @@
1
1
  import { render, screen, within } from '@testing-library/react';
2
- import { Truncate } from '../Truncate';
2
+ import { Truncate, TruncatePosition } from '../Truncate';
3
3
  import styles from '@patternfly/react-styles/css/components/Truncate/truncate';
4
4
  import '@testing-library/jest-dom';
5
5
 
@@ -67,7 +67,9 @@ test('renders default truncation', () => {
67
67
  expect(asFragment()).toMatchSnapshot();
68
68
  });
69
69
 
70
- test('renders start truncation with &lrm; at end', () => {
70
+ // If this snapshot fails and the output text doesn't seem like it's changed, it most likely
71
+ // is due to the &lrm; HTML entity isn't rendering correctly.
72
+ test('renders start truncation with &lrm; at start and end', () => {
71
73
  const { asFragment } = render(
72
74
  <Truncate
73
75
  content={'Vestibulum interdum risus et enim faucibus, sit amet molestie est accumsan.'}
@@ -65,7 +65,7 @@ exports[`renders default truncation 1`] = `
65
65
  </DocumentFragment>
66
66
  `;
67
67
 
68
- exports[`renders start truncation with &lrm; at end 1`] = `
68
+ exports[`renders start truncation with &lrm; at start and end 1`] = `
69
69
  <DocumentFragment>
70
70
  <div
71
71
  data-testid="Tooltip-mock"
@@ -86,7 +86,7 @@ exports[`renders start truncation with &lrm; at end 1`] = `
86
86
  <span
87
87
  class="pf-v6-c-truncate__end"
88
88
  >
89
- Vestibulum interdum risus et enim faucibus, sit amet molestie est accumsan.‎
89
+ Vestibulum interdum risus et enim faucibus, sit amet molestie est accumsan.‎
90
90
  </span>
91
91
  </span>
92
92
  </DocumentFragment>
@@ -39,16 +39,16 @@ class BannerDemo extends React.Component {
39
39
  return (
40
40
  <Fragment>
41
41
  <DashboardWrapper banner={banner} breadcrumb={null}>
42
- <PageSection>
42
+ <PageSection aria-labelledby="main-title">
43
43
  <Content>
44
- <h1>Main title</h1>
44
+ <h1 id="main-title">Main title</h1>
45
45
  <p>
46
46
  Body text should be Red Hat Text at 1rem(16px). It should have leading of 1.5rem(24px) because <br />
47
47
  of it’s relative line height of 1.5.
48
48
  </p>
49
49
  </Content>
50
50
  </PageSection>
51
- <PageSection>
51
+ <PageSection aria-label='Cards gallery'>
52
52
  <Gallery hasGutter>
53
53
  {Array.from({ length: 30 }).map((_value, index) => (
54
54
  <GalleryItem key={index}>
@@ -112,9 +112,9 @@ class BannerDemo extends React.Component {
112
112
  </FlexItem>
113
113
  <FlexItem grow={{ default: 'grow' }} style={{ minHeight: 0 }}>
114
114
  <DashboardWrapper breadcrumb={null}>
115
- <PageSection>
115
+ <PageSection aria-labelledby="main-title">
116
116
  <Content>
117
- <h1>Main title</h1>
117
+ <h1 id='main-title'>Main title</h1>
118
118
  <p>
119
119
  Body text should be Red Hat Text at 1rem(16px). It should have leading of 1.5rem(24px) because{' '}
120
120
  <br />
@@ -122,7 +122,7 @@ class BannerDemo extends React.Component {
122
122
  </p>
123
123
  </Content>
124
124
  </PageSection>
125
- <PageSection>
125
+ <PageSection aria-label='Cards gallery'>
126
126
  <Gallery hasGutter>
127
127
  {Array.from({ length: 30 }).map((_value, index) => (
128
128
  <GalleryItem key={index}>
@@ -14,7 +14,7 @@ import chart_color_yellow_100 from '@patternfly/react-tokens/dist/esm/chart_colo
14
14
  import chart_color_yellow_300 from '@patternfly/react-tokens/dist/esm/chart_color_yellow_300';
15
15
  import chart_color_orange_300 from '@patternfly/react-tokens/dist/esm/chart_color_orange_300';
16
16
  import chart_color_red_orange_400 from '@patternfly/react-tokens/dist/esm/chart_color_red_orange_400';
17
- import l_gallery_GridTemplateColumns_min from '@patternfly/react-tokens/dist/esm/l_gallery_GridTemplateColumns_min';
17
+ import cssGridTemplateColumnsMin from '@patternfly/react-tokens/dist/esm/l_gallery_GridTemplateColumns_min';
18
18
  import t_global_text_color_subtle from '@patternfly/react-tokens/dist/esm/t_global_text_color_subtle';
19
19
  import flex from '@patternfly/react-styles/css/utilities/Flex/flex';
20
20
  import text from '@patternfly/react-styles/css/utilities/Text/text';
@@ -465,16 +465,16 @@ export const CardViewBasic: React.FunctionComponent = () => {
465
465
  return (
466
466
  <Fragment>
467
467
  <DashboardWrapper mainContainerId="main-content-card-view-default-nav" breadcrumb={null}>
468
- <PageSection>
468
+ <PageSection aria-labelledby="projects">
469
469
  <Content>
470
- <h1>Projects</h1>
470
+ <h1 id="projects">Projects</h1>
471
471
  <p>This is a demo that showcases PatternFly cards.</p>
472
472
  </Content>
473
473
  <Toolbar id="toolbar-group-types" clearAllFilters={onDelete}>
474
474
  <ToolbarContent>{toolbarItems}</ToolbarContent>
475
475
  </Toolbar>
476
476
  </PageSection>
477
- <PageSection isFilled>
477
+ <PageSection isFilled aria-label="Selectable card gallery">
478
478
  <Gallery hasGutter aria-label="Selectable card container">
479
479
  <Card isCompact>
480
480
  <Bullseye>
@@ -546,7 +546,12 @@ export const CardViewBasic: React.FunctionComponent = () => {
546
546
  ))}
547
547
  </Gallery>
548
548
  </PageSection>
549
- <PageSection isFilled={false} stickyOnBreakpoint={{ default: 'bottom' }} padding={{ default: 'noPadding' }}>
549
+ <PageSection
550
+ isFilled={false}
551
+ stickyOnBreakpoint={{ default: 'bottom' }}
552
+ padding={{ default: 'noPadding' }}
553
+ aria-label="Pagination controls"
554
+ >
550
555
  <Pagination
551
556
  itemCount={totalItemCount}
552
557
  page={page}
@@ -33,13 +33,15 @@ export const DataListActionable: React.FunctionComponent = () => {
33
33
 
34
34
  return (
35
35
  <DashboardWrapper mainContainerId="main-content-datalist-view-actions" breadcrumb={null}>
36
- <PageSection>
36
+ <PageSection aria-labelledby="projects">
37
37
  <Content>
38
- <Title headingLevel="h1">Projects</Title>
38
+ <Title headingLevel="h1" id="projects">
39
+ Projects
40
+ </Title>
39
41
  <Content component="p">This is a demo that showcases PatternFly Data List</Content>
40
42
  </Content>
41
43
  </PageSection>
42
- <PageSection>
44
+ <PageSection aria-label="Data list of projects">
43
45
  <DataList aria-label="single action data list example ">
44
46
  {!isDeleted && (
45
47
  <DataListItem aria-labelledby="single-action-item1">