@patternfly/react-core 6.0.0-alpha.87 → 6.0.0-alpha.88

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 (245) hide show
  1. package/CHANGELOG.md +6 -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/Tile/package.json +1 -1
  74. package/dist/dynamic/components/TimePicker/package.json +1 -1
  75. package/dist/dynamic/components/Timestamp/package.json +1 -1
  76. package/dist/dynamic/components/Title/package.json +1 -1
  77. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  78. package/dist/dynamic/components/Toolbar/package.json +1 -1
  79. package/dist/dynamic/components/Tooltip/package.json +1 -1
  80. package/dist/dynamic/components/TreeView/package.json +1 -1
  81. package/dist/dynamic/components/Truncate/package.json +1 -1
  82. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  83. package/dist/dynamic/components/Wizard/package.json +1 -1
  84. package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
  85. package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/Modal/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/dynamic-modules.json +3 -11
  115. package/dist/esm/components/Content/Content.d.ts +3 -3
  116. package/dist/esm/components/Content/Content.d.ts.map +1 -1
  117. package/dist/esm/components/Content/Content.js +24 -24
  118. package/dist/esm/components/Content/Content.js.map +1 -1
  119. package/dist/esm/components/Content/index.d.ts +0 -3
  120. package/dist/esm/components/Content/index.d.ts.map +1 -1
  121. package/dist/esm/components/Content/index.js +0 -3
  122. package/dist/esm/components/Content/index.js.map +1 -1
  123. package/dist/esm/demos/DashboardWrapper.d.ts.map +1 -1
  124. package/dist/esm/demos/DashboardWrapper.js +4 -4
  125. package/dist/esm/demos/DashboardWrapper.js.map +1 -1
  126. package/dist/js/components/Content/Content.d.ts +3 -3
  127. package/dist/js/components/Content/Content.d.ts.map +1 -1
  128. package/dist/js/components/Content/Content.js +26 -26
  129. package/dist/js/components/Content/Content.js.map +1 -1
  130. package/dist/js/components/Content/index.d.ts +0 -3
  131. package/dist/js/components/Content/index.d.ts.map +1 -1
  132. package/dist/js/components/Content/index.js +0 -3
  133. package/dist/js/components/Content/index.js.map +1 -1
  134. package/dist/js/demos/DashboardWrapper.d.ts.map +1 -1
  135. package/dist/js/demos/DashboardWrapper.js +3 -3
  136. package/dist/js/demos/DashboardWrapper.js.map +1 -1
  137. package/dist/umd/assets/{output-InLLAkYl.css → output-DbCJu18k.css} +3546 -3546
  138. package/dist/umd/react-core.min.js +1 -1
  139. package/helpers/package.json +1 -1
  140. package/layouts/package.json +1 -1
  141. package/next/package.json +1 -1
  142. package/package.json +2 -2
  143. package/src/components/AboutModal/examples/AboutModalBasic.tsx +19 -19
  144. package/src/components/AboutModal/examples/AboutModalComplexUserPositionedContent.tsx +21 -21
  145. package/src/components/AboutModal/examples/AboutModalWithoutProductName.tsx +19 -19
  146. package/src/components/Content/Content.tsx +6 -6
  147. package/src/components/Content/__tests__/Content.test.tsx +194 -20
  148. package/src/components/Content/__tests__/__snapshots__/Content.test.tsx.snap +1 -1
  149. package/src/components/Content/examples/Content.md +13 -13
  150. package/src/components/Content/examples/ContentBody.tsx +12 -10
  151. package/src/components/Content/examples/ContentDescriptionList.tsx +9 -11
  152. package/src/components/Content/examples/ContentHeadings.tsx +7 -7
  153. package/src/components/Content/examples/ContentOrderedList.tsx +10 -10
  154. package/src/components/Content/examples/ContentPlainList.tsx +22 -18
  155. package/src/components/Content/examples/ContentUnorderedList.tsx +12 -12
  156. package/src/components/Content/examples/ContentVisited.tsx +23 -23
  157. package/src/components/Content/examples/ContentWrapper.tsx +7 -7
  158. package/src/components/Content/index.ts +0 -3
  159. package/src/components/DataList/examples/DataListWidthModifiers.tsx +10 -12
  160. package/src/components/Icon/examples/IconInline.tsx +10 -12
  161. package/src/components/Modal/examples/ModalCustomHeader.tsx +4 -6
  162. package/src/components/Slider/examples/SliderActions.tsx +2 -2
  163. package/src/components/Slider/examples/SliderContinuous.tsx +3 -3
  164. package/src/components/Slider/examples/SliderDisabled.tsx +2 -2
  165. package/src/components/Slider/examples/SliderDiscrete.tsx +14 -14
  166. package/src/components/Spinner/examples/SpinnerInline.tsx +10 -12
  167. package/src/demos/Banner.md +14 -25
  168. package/src/demos/CardView/examples/CardView.tsx +5 -6
  169. package/src/demos/DashboardWrapper.tsx +6 -7
  170. package/src/demos/DataList/examples/DataListBasic.tsx +17 -20
  171. package/src/demos/DataList/examples/DataListExpandableControlInToolbar.tsx +7 -9
  172. package/src/demos/DescriptionList/examples/DescriptionListBasic.tsx +6 -8
  173. package/src/demos/JumpLinks.md +3 -3
  174. package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +7 -8
  175. package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +7 -8
  176. package/src/demos/RTL/examples/PaginatedTable.jsx +5 -7
  177. package/src/demos/RTL/examples/PaginatedTable.tsx +5 -7
  178. package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +14 -15
  179. package/src/demos/examples/BackToTop/BackToTopNameDemo.tsx +7 -8
  180. package/src/demos/examples/DashboardWrapper.js +6 -7
  181. package/src/demos/examples/JumpLinks/JumpLinksWithDrawer.js +3 -3
  182. package/src/demos/examples/Masthead/MastheadWithHorizontalNav.tsx +9 -13
  183. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +5 -6
  184. package/src/demos/examples/Nav/NavDefault.tsx +8 -9
  185. package/src/demos/examples/Nav/NavExpandable.tsx +8 -9
  186. package/src/demos/examples/Nav/NavGrouped.tsx +8 -9
  187. package/src/demos/examples/Nav/NavHorizontal.tsx +7 -8
  188. package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +7 -8
  189. package/src/demos/examples/Nav/NavManual.tsx +7 -8
  190. package/src/demos/examples/Nav/NavWithSubnav.tsx +8 -9
  191. package/src/demos/examples/Page/PageContextSelector.tsx +5 -6
  192. package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +5 -6
  193. package/src/demos/examples/Page/PageStickySectionGroup.tsx +5 -6
  194. package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +5 -6
  195. package/src/demos/examples/PrimaryDetail/PrimaryDetailCardView.tsx +10 -14
  196. package/src/demos/examples/PrimaryDetail/PrimaryDetailContentPadding.tsx +7 -8
  197. package/src/demos/examples/PrimaryDetail/PrimaryDetailDataListInCard.tsx +8 -10
  198. package/src/demos/examples/PrimaryDetail/PrimaryDetailFullPage.tsx +7 -8
  199. package/src/demos/examples/PrimaryDetail/PrimaryDetailInlineModifier.tsx +7 -8
  200. package/src/demos/examples/PrimaryDetail/PrimaryDetailSimpleListInCard.tsx +8 -10
  201. package/src/demos/examples/Tabs/ModalTabs.tsx +5 -6
  202. package/src/demos/examples/Tabs/NestedUnindentedTabs.tsx +4 -5
  203. package/src/demos/examples/Wizard/InModalWithDrawerInformationalStep.tsx +4 -6
  204. package/src/demos/examples/Wizard/InPageWithDrawer.tsx +5 -6
  205. package/src/demos/examples/Wizard/InPageWithDrawerInformationalStep.tsx +8 -9
  206. package/dist/esm/components/Content/TextContent.d.ts +0 -11
  207. package/dist/esm/components/Content/TextContent.d.ts.map +0 -1
  208. package/dist/esm/components/Content/TextContent.js +0 -10
  209. package/dist/esm/components/Content/TextContent.js.map +0 -1
  210. package/dist/esm/components/Content/TextList.d.ts +0 -18
  211. package/dist/esm/components/Content/TextList.d.ts.map +0 -1
  212. package/dist/esm/components/Content/TextList.js +0 -22
  213. package/dist/esm/components/Content/TextList.js.map +0 -1
  214. package/dist/esm/components/Content/TextListItem.d.ts +0 -16
  215. package/dist/esm/components/Content/TextListItem.d.ts.map +0 -1
  216. package/dist/esm/components/Content/TextListItem.js +0 -22
  217. package/dist/esm/components/Content/TextListItem.js.map +0 -1
  218. package/dist/js/components/Content/TextContent.d.ts +0 -11
  219. package/dist/js/components/Content/TextContent.d.ts.map +0 -1
  220. package/dist/js/components/Content/TextContent.js +0 -14
  221. package/dist/js/components/Content/TextContent.js.map +0 -1
  222. package/dist/js/components/Content/TextList.d.ts +0 -18
  223. package/dist/js/components/Content/TextList.d.ts.map +0 -1
  224. package/dist/js/components/Content/TextList.js +0 -26
  225. package/dist/js/components/Content/TextList.js.map +0 -1
  226. package/dist/js/components/Content/TextListItem.d.ts +0 -16
  227. package/dist/js/components/Content/TextListItem.d.ts.map +0 -1
  228. package/dist/js/components/Content/TextListItem.js +0 -26
  229. package/dist/js/components/Content/TextListItem.js.map +0 -1
  230. package/src/components/Content/TextContent.tsx +0 -25
  231. package/src/components/Content/TextList.tsx +0 -43
  232. package/src/components/Content/TextListItem.tsx +0 -40
  233. package/src/components/Content/__tests__/Generated/TextContent.test.tsx +0 -13
  234. package/src/components/Content/__tests__/Generated/TextList.test.tsx +0 -13
  235. package/src/components/Content/__tests__/Generated/TextListItem.test.tsx +0 -13
  236. package/src/components/Content/__tests__/Generated/__snapshots__/TextContent.test.tsx.snap +0 -11
  237. package/src/components/Content/__tests__/Generated/__snapshots__/TextList.test.tsx.snap +0 -11
  238. package/src/components/Content/__tests__/Generated/__snapshots__/TextListItem.test.tsx.snap +0 -11
  239. package/src/components/Content/__tests__/TextContent.test.tsx +0 -48
  240. package/src/components/Content/__tests__/TextList.test.tsx +0 -52
  241. package/src/components/Content/__tests__/TextListItem.test.tsx +0 -47
  242. package/src/components/Content/__tests__/__snapshots__/TextContent.test.tsx.snap +0 -11
  243. package/src/components/Content/__tests__/__snapshots__/TextList.test.tsx.snap +0 -11
  244. package/src/components/Content/__tests__/__snapshots__/TextListItem.test.tsx.snap +0 -11
  245. package/src/components/Text/examples/Text.md +0 -8
@@ -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.0.0-alpha.86","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.0.0-alpha.87","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.0.0-alpha.86","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.0.0-alpha.87","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.0.0-alpha.86","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.0.0-alpha.87","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "6.0.0-alpha.87",
3
+ "version": "6.0.0-alpha.88",
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",
@@ -64,5 +64,5 @@
64
64
  "react": "^17 || ^18",
65
65
  "react-dom": "^17 || ^18"
66
66
  },
67
- "gitHead": "8e897861592c3ee8b186f6aef3958741073312e7"
67
+ "gitHead": "18e869e654d317afd33701db8252d408690fbd62"
68
68
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { AboutModal, Button, TextContent, TextList, TextListItem } from '@patternfly/react-core';
2
+ import { AboutModal, Button, Content } from '@patternfly/react-core';
3
3
  import brandImg from '../../assets/PF-IconLogo.svg';
4
4
 
5
5
  export const AboutModalBasic: React.FunctionComponent = () => {
@@ -23,24 +23,24 @@ export const AboutModalBasic: React.FunctionComponent = () => {
23
23
  backgroundImageSrc="/assets/images/pf-background.svg"
24
24
  productName="name"
25
25
  >
26
- <TextContent>
27
- <TextList component="dl">
28
- <TextListItem component="dt">CFME version</TextListItem>
29
- <TextListItem component="dd">5.5.3.4.20102789036450</TextListItem>
30
- <TextListItem component="dt">Cloudforms Version</TextListItem>
31
- <TextListItem component="dd">4.1</TextListItem>
32
- <TextListItem component="dt">Server name</TextListItem>
33
- <TextListItem component="dd">40DemoMaster</TextListItem>
34
- <TextListItem component="dt">User name</TextListItem>
35
- <TextListItem component="dd">Administrator</TextListItem>
36
- <TextListItem component="dt">User role</TextListItem>
37
- <TextListItem component="dd">EvmRole-super_administrator</TextListItem>
38
- <TextListItem component="dt">Browser version</TextListItem>
39
- <TextListItem component="dd">601.2</TextListItem>
40
- <TextListItem component="dt">Browser OS</TextListItem>
41
- <TextListItem component="dd">Mac</TextListItem>
42
- </TextList>
43
- </TextContent>
26
+ <Content>
27
+ <dl>
28
+ <dt>CFME version</dt>
29
+ <dd>5.5.3.4.20102789036450</dd>
30
+ <dt>Cloudforms Version</dt>
31
+ <dd>4.1</dd>
32
+ <dt>Server name</dt>
33
+ <dd>40DemoMaster</dd>
34
+ <dt>User name</dt>
35
+ <dd>Administrator</dd>
36
+ <dt>User role</dt>
37
+ <dd>EvmRole-super_administrator</dd>
38
+ <dt>Browser version</dt>
39
+ <dd>601.2</dd>
40
+ <dt>Browser OS</dt>
41
+ <dd>Mac</dd>
42
+ </dl>
43
+ </Content>
44
44
  </AboutModal>
45
45
  </React.Fragment>
46
46
  );
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { AboutModal, Alert, Button, TextContent, TextList, TextListItem } from '@patternfly/react-core';
2
+ import { AboutModal, Alert, Button, Content } from '@patternfly/react-core';
3
3
  import brandImg from '../../assets/PF-IconLogo.svg';
4
4
  import spacing from '@patternfly/react-styles/css/utilities/Spacing/spacing';
5
5
 
@@ -25,29 +25,29 @@ export const AboutModalComplexUserPositionedContent: React.FunctionComponent = (
25
25
  hasNoContentContainer={true}
26
26
  productName="Product name"
27
27
  >
28
- <TextContent id="test1" className={spacing.pyXl}>
28
+ <Content id="test1" className={spacing.pyXl}>
29
29
  <h4>About</h4>
30
30
  <p>Content here</p>
31
- </TextContent>
31
+ </Content>
32
32
  <Alert variant="info" title="Updates available" />
33
- <TextContent id="test2" className={spacing.pyXl}>
34
- <TextList component="dl">
35
- <TextListItem component="dt">CFME version</TextListItem>
36
- <TextListItem component="dd">5.5.3.4.20102789036450</TextListItem>
37
- <TextListItem component="dt">Cloudforms version</TextListItem>
38
- <TextListItem component="dd">4.1</TextListItem>
39
- <TextListItem component="dt">Server name</TextListItem>
40
- <TextListItem component="dd">40DemoMaster</TextListItem>
41
- <TextListItem component="dt">User name</TextListItem>
42
- <TextListItem component="dd">Administrator</TextListItem>
43
- <TextListItem component="dt">User role</TextListItem>
44
- <TextListItem component="dd">EvmRole-super_administrator</TextListItem>
45
- <TextListItem component="dt">Browser version</TextListItem>
46
- <TextListItem component="dd">601.2</TextListItem>
47
- <TextListItem component="dt">Browser OS</TextListItem>
48
- <TextListItem component="dd">Mac</TextListItem>
49
- </TextList>
50
- </TextContent>
33
+ <Content id="test2" className={spacing.pyXl}>
34
+ <dl>
35
+ <dt>CFME version</dt>
36
+ <dd>5.5.3.4.20102789036450</dd>
37
+ <dt>Cloudforms version</dt>
38
+ <dd>4.1</dd>
39
+ <dt>Server name</dt>
40
+ <dd>40DemoMaster</dd>
41
+ <dt>User name</dt>
42
+ <dd>Administrator</dd>
43
+ <dt>User role</dt>
44
+ <dd>EvmRole-super_administrator</dd>
45
+ <dt>Browser version</dt>
46
+ <dd>601.2</dd>
47
+ <dt>Browser OS</dt>
48
+ <dd>Mac</dd>
49
+ </dl>
50
+ </Content>
51
51
  </AboutModal>
52
52
  </React.Fragment>
53
53
  );
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { AboutModal, Button, TextContent, TextList, TextListItem } from '@patternfly/react-core';
2
+ import { AboutModal, Button, Content } from '@patternfly/react-core';
3
3
  import brandImg from '../../assets/PF-IconLogo.svg';
4
4
 
5
5
  export const AboutModalWithoutProductName: React.FunctionComponent = () => {
@@ -23,24 +23,24 @@ export const AboutModalWithoutProductName: React.FunctionComponent = () => {
23
23
  backgroundImageSrc="/assets/images/pf-background.svg"
24
24
  aria-label="No product name about modal"
25
25
  >
26
- <TextContent>
27
- <TextList component="dl">
28
- <TextListItem component="dt">CFME version</TextListItem>
29
- <TextListItem component="dd">5.5.3.4.20102789036450</TextListItem>
30
- <TextListItem component="dt">Cloudforms version</TextListItem>
31
- <TextListItem component="dd">4.1</TextListItem>
32
- <TextListItem component="dt">Server name</TextListItem>
33
- <TextListItem component="dd">40DemoMaster</TextListItem>
34
- <TextListItem component="dt">User name</TextListItem>
35
- <TextListItem component="dd">Administrator</TextListItem>
36
- <TextListItem component="dt">User role</TextListItem>
37
- <TextListItem component="dd">EvmRole-super_administrator</TextListItem>
38
- <TextListItem component="dt">Browser version</TextListItem>
39
- <TextListItem component="dd">601.2</TextListItem>
40
- <TextListItem component="dt">Browser OS</TextListItem>
41
- <TextListItem component="dd">Mac</TextListItem>
42
- </TextList>
43
- </TextContent>
26
+ <Content>
27
+ <dl>
28
+ <dt>CFME version</dt>
29
+ <dd>5.5.3.4.20102789036450</dd>
30
+ <dt>Cloudforms version</dt>
31
+ <dd>4.1</dd>
32
+ <dt>Server name</dt>
33
+ <dd>40DemoMaster</dd>
34
+ <dt>User name</dt>
35
+ <dd>Administrator</dd>
36
+ <dt>User role</dt>
37
+ <dd>EvmRole-super_administrator</dd>
38
+ <dt>Browser version</dt>
39
+ <dd>601.2</dd>
40
+ <dt>Browser OS</dt>
41
+ <dd>Mac</dd>
42
+ </dl>
43
+ </Content>
44
44
  </AboutModal>
45
45
  </React.Fragment>
46
46
  );
@@ -3,7 +3,7 @@ import { css } from '@patternfly/react-styles';
3
3
  import styles from '@patternfly/react-styles/css/components/Content/content';
4
4
  import { useOUIAProps, OUIAProps } from '../../helpers';
5
5
 
6
- export enum TextVariants {
6
+ export enum ContentVariants {
7
7
  h1 = 'h1',
8
8
  h2 = 'h2',
9
9
  h3 = 'h3',
@@ -24,7 +24,7 @@ export enum TextVariants {
24
24
  dd = 'dd'
25
25
  }
26
26
 
27
- export interface TextProps extends React.HTMLProps<HTMLElement>, OUIAProps {
27
+ export interface ContentProps extends React.HTMLProps<HTMLElement>, OUIAProps {
28
28
  /** The content component. If none provided, it will be a 'div' and styling will be applied to all its child components. */
29
29
  component?:
30
30
  | 'h1'
@@ -81,7 +81,7 @@ const componentStyles = {
81
81
  dd: styles.contentDd
82
82
  };
83
83
 
84
- export const Text: React.FunctionComponent<TextProps> = ({
84
+ export const Content: React.FunctionComponent<ContentProps> = ({
85
85
  children,
86
86
  className = '',
87
87
  component,
@@ -90,10 +90,10 @@ export const Text: React.FunctionComponent<TextProps> = ({
90
90
  ouiaId,
91
91
  ouiaSafe = true,
92
92
  ...props
93
- }: TextProps) => {
93
+ }: ContentProps) => {
94
94
  const wrappingComponent = component ?? 'div';
95
95
  const Component: any = wrappingComponent;
96
- const ouiaProps = useOUIAProps(Text.displayName, ouiaId, ouiaSafe);
96
+ const ouiaProps = useOUIAProps(Content.displayName, ouiaId, ouiaSafe);
97
97
 
98
98
  const isList = ['ul', 'ol', 'dl'].includes(wrappingComponent);
99
99
 
@@ -113,4 +113,4 @@ export const Text: React.FunctionComponent<TextProps> = ({
113
113
  </Component>
114
114
  );
115
115
  };
116
- Text.displayName = 'Text';
116
+ Content.displayName = 'Content';
@@ -1,96 +1,270 @@
1
1
  import * as React from 'react';
2
2
  import { render, screen } from '@testing-library/react';
3
- import { Text } from '../Content';
3
+ import { Content } from '../Content';
4
+ import styles from '@patternfly/react-styles/css/components/Content/content';
4
5
 
5
6
  test('Renders without children', () => {
6
7
  render(
7
8
  <div data-testid="test-content">
8
- <Text />
9
+ <Content />
9
10
  </div>
10
11
  );
11
12
  expect(screen.getByTestId('test-content').firstChild).toBeVisible();
12
13
  });
13
14
 
14
15
  test('Renders children', () => {
15
- render(<Text>Test</Text>);
16
+ render(<Content>Test</Content>);
16
17
  expect(screen.getByText('Test')).toBeVisible();
17
18
  });
18
19
 
19
20
  test('Renders with custom class name when className prop is provided', () => {
20
- render(<Text className="custom-class">Test</Text>);
21
+ render(<Content className="custom-class">Test</Content>);
21
22
  expect(screen.getByText('Test')).toHaveClass('custom-class');
22
23
  });
23
24
 
24
25
  test('Renders as "div" element by default', () => {
25
- render(<Text>Test</Text>);
26
+ render(<Content>Test</Content>);
26
27
  expect(screen.getByText('Test')).toHaveProperty('nodeName', 'DIV');
27
28
  });
28
29
 
29
30
  test('Renders as "h1" element when component="h1"', () => {
30
- render(<Text component="h1">Test</Text>);
31
+ render(<Content component="h1">Test</Content>);
31
32
  expect(screen.getByRole('heading', { level: 1 })).toBeVisible();
32
33
  });
33
34
 
34
35
  test('Renders as "h2" element when component="h2"', () => {
35
- render(<Text component="h2">Test</Text>);
36
+ render(<Content component="h2">Test</Content>);
36
37
  expect(screen.getByRole('heading', { level: 2 })).toBeVisible();
37
38
  });
38
39
 
39
40
  test('Renders as "h3" element when component="h3"', () => {
40
- render(<Text component="h3">Test</Text>);
41
+ render(<Content component="h3">Test</Content>);
41
42
  expect(screen.getByRole('heading', { level: 3 })).toBeVisible();
42
43
  });
43
44
 
44
45
  test('Renders as "h4" element when component="h4"', () => {
45
- render(<Text component="h4">Test</Text>);
46
+ render(<Content component="h4">Test</Content>);
46
47
  expect(screen.getByRole('heading', { level: 4 })).toBeVisible();
47
48
  });
48
49
 
49
50
  test('Renders as "h5" element when component="h5"', () => {
50
- render(<Text component="h5">Test</Text>);
51
+ render(<Content component="h5">Test</Content>);
51
52
  expect(screen.getByRole('heading', { level: 5 })).toBeVisible();
52
53
  });
53
54
 
54
55
  test('Renders as "h6" element when component="h6"', () => {
55
- render(<Text component="h6">Test</Text>);
56
+ render(<Content component="h6">Test</Content>);
56
57
  expect(screen.getByRole('heading', { level: 6 })).toBeVisible();
57
58
  });
58
59
 
59
60
  test('Renders as "a" element when component="a"', () => {
60
- render(<Text component="a">Test</Text>);
61
+ render(<Content component="a">Test</Content>);
61
62
  expect(screen.getByText('Test')).toHaveProperty('nodeName', 'A');
62
63
  });
63
64
 
64
65
  test('Renders as "blockquote" element when component="blockquote"', () => {
65
- render(<Text component="blockquote">Test</Text>);
66
+ render(<Content component="blockquote">Test</Content>);
66
67
  expect(screen.getByText('Test')).toHaveProperty('nodeName', 'BLOCKQUOTE');
67
68
  });
68
69
 
69
70
  test('Renders as "pre" element when component="pre"', () => {
70
- render(<Text component="pre">Test</Text>);
71
+ render(<Content component="pre">Test</Content>);
71
72
  expect(screen.getByText('Test')).toHaveProperty('nodeName', 'PRE');
72
73
  });
73
74
 
75
+ test('Renders as "hr" element when component="hr"', () => {
76
+ render(<Content component="hr" />);
77
+ expect(screen.getByRole('separator')).toHaveProperty('nodeName', 'HR');
78
+ });
79
+
80
+ test('Renders as "ul" element component="ul"', () => {
81
+ render(<Content component="ul">Test</Content>);
82
+ expect(screen.getByText('Test')).toHaveProperty('nodeName', 'UL');
83
+ });
84
+
85
+ test('Renders as "ol" element when component="ol"', () => {
86
+ render(<Content component="ol">Test</Content>);
87
+ expect(screen.getByText('Test')).toHaveProperty('nodeName', 'OL');
88
+ });
89
+
90
+ test('Renders as "dl" element when component="dl"', () => {
91
+ render(<Content component="dl">Test</Content>);
92
+ expect(screen.getByText('Test')).toHaveProperty('nodeName', 'DL');
93
+ });
94
+
95
+ test('Renders as "li" element when component="li"', () => {
96
+ render(<Content component="li">Test</Content>);
97
+ expect(screen.getByText('Test')).toHaveProperty('nodeName', 'LI');
98
+ });
99
+
100
+ test('Renders as "dt" element when component="dt"', () => {
101
+ render(<Content component="dt">Test</Content>);
102
+ expect(screen.getByText('Test')).toHaveProperty('nodeName', 'DT');
103
+ });
104
+
105
+ test('Renders as "dd" element when component="dd"', () => {
106
+ render(<Content component="dd">Test</Content>);
107
+ expect(screen.getByText('Test')).toHaveProperty('nodeName', 'DD');
108
+ });
109
+
110
+ test(`Renders with class name ${styles.contentH1} when component="h1"`, () => {
111
+ render(<Content component="h1">Test</Content>);
112
+ expect(screen.getByText('Test')).toHaveClass(styles.contentH1);
113
+ });
114
+
115
+ test(`Renders with class name ${styles.contentH2} when component="h2"`, () => {
116
+ render(<Content component="h2">Test</Content>);
117
+ expect(screen.getByText('Test')).toHaveClass(styles.contentH2);
118
+ });
119
+
120
+ test(`Renders with class name ${styles.contentH3} when component="h3"`, () => {
121
+ render(<Content component="h3">Test</Content>);
122
+ expect(screen.getByText('Test')).toHaveClass(styles.contentH3);
123
+ });
124
+
125
+ test(`Renders with class name ${styles.contentH4} when component="h4"`, () => {
126
+ render(<Content component="h4">Test</Content>);
127
+ expect(screen.getByText('Test')).toHaveClass(styles.contentH4);
128
+ });
129
+
130
+ test(`Renders with class name ${styles.contentH5} when component="h5"`, () => {
131
+ render(<Content component="h5">Test</Content>);
132
+ expect(screen.getByText('Test')).toHaveClass(styles.contentH5);
133
+ });
134
+
135
+ test(`Renders with class name ${styles.contentH6} when component="h6"`, () => {
136
+ render(<Content component="h6">Test</Content>);
137
+ expect(screen.getByText('Test')).toHaveClass(styles.contentH6);
138
+ });
139
+
140
+ test(`Renders with class name ${styles.contentP} when component="p"`, () => {
141
+ render(<Content component="p">Test</Content>);
142
+ expect(screen.getByText('Test')).toHaveClass(styles.contentP);
143
+ });
144
+
145
+ test(`Renders with class name ${styles.contentA} when component="a"`, () => {
146
+ render(<Content component="a">Test</Content>);
147
+ expect(screen.getByText('Test')).toHaveClass(styles.contentA);
148
+ });
149
+
150
+ test(`Renders with class name ${styles.contentSmall} when component="small"`, () => {
151
+ render(<Content component="small">Test</Content>);
152
+ expect(screen.getByText('Test')).toHaveClass(styles.contentSmall);
153
+ });
154
+
155
+ test(`Renders with class name ${styles.contentBlockquote} when component="blockquote"`, () => {
156
+ render(<Content component="blockquote">Test</Content>);
157
+ expect(screen.getByText('Test')).toHaveClass(styles.contentBlockquote);
158
+ });
159
+
160
+ test(`Renders with class name ${styles.contentPre} when component="pre"`, () => {
161
+ render(<Content component="pre">Test</Content>);
162
+ expect(screen.getByText('Test')).toHaveClass(styles.contentPre);
163
+ });
164
+
165
+ test(`Renders with class name ${styles.contentHr} when component="hr"`, () => {
166
+ render(<Content component="hr" />);
167
+ expect(screen.getByRole('separator')).toHaveClass(styles.contentHr);
168
+ });
169
+
170
+ test(`Renders with class name ${styles.contentUl} when component="ul"`, () => {
171
+ render(<Content component="ul">Test</Content>);
172
+ expect(screen.getByText('Test')).toHaveClass(styles.contentUl);
173
+ });
174
+
175
+ test(`Renders with class name ${styles.contentOl} when component="ol"`, () => {
176
+ render(<Content component="ol">Test</Content>);
177
+ expect(screen.getByText('Test')).toHaveClass(styles.contentOl);
178
+ });
179
+
180
+ test(`Renders with class name ${styles.contentDl} when component="dl"`, () => {
181
+ render(<Content component="dl">Test</Content>);
182
+ expect(screen.getByText('Test')).toHaveClass(styles.contentDl);
183
+ });
184
+
185
+ test(`Renders with class name ${styles.contentLi} when component="li"`, () => {
186
+ render(<Content component="li">Test</Content>);
187
+ expect(screen.getByText('Test')).toHaveClass(styles.contentLi);
188
+ });
189
+
190
+ test(`Renders with class name ${styles.contentDt} when component="dt"`, () => {
191
+ render(<Content component="dt">Test</Content>);
192
+ expect(screen.getByText('Test')).toHaveClass(styles.contentDt);
193
+ });
194
+
195
+ test(`Renders with class name ${styles.contentDd} when component="dd"`, () => {
196
+ render(<Content component="dd">Test</Content>);
197
+ expect(screen.getByText('Test')).toHaveClass(styles.contentDd);
198
+ });
199
+
200
+ test(`Renders with class name ${styles.content} when no component prop is provided`, () => {
201
+ render(<Content>Test</Content>);
202
+ expect(screen.getByText('Test')).toHaveClass(styles.content);
203
+ });
204
+
205
+ test(`Renders without class name ${styles.content} when component is provided`, () => {
206
+ render(<Content component="p">Test</Content>);
207
+ expect(screen.getByText('Test')).not.toHaveClass(styles.content);
208
+ });
209
+
210
+ test(`Renders with class name pf-m-plain when isPlainList=true and component is 'ul', 'ol' or 'dl'`, () => {
211
+ render(
212
+ <>
213
+ <Content component="ul" isPlainList>
214
+ Test1
215
+ </Content>
216
+ <Content component="ol" isPlainList>
217
+ Test2
218
+ </Content>
219
+ <Content component="dl" isPlainList>
220
+ Test3
221
+ </Content>
222
+ </>
223
+ );
224
+ expect(screen.getByText('Test1')).toHaveClass('pf-m-plain');
225
+ expect(screen.getByText('Test2')).toHaveClass('pf-m-plain');
226
+ expect(screen.getByText('Test3')).toHaveClass('pf-m-plain');
227
+ });
228
+
229
+ test(`Renders without class name pf-m-plain by default`, () => {
230
+ render(<Content component="ul">Test</Content>);
231
+ expect(screen.getByText('Test')).not.toHaveClass('pf-m-plain');
232
+ });
233
+
234
+ test(`Renders without class name pf-m-plain when isPlainList=true, but component is not 'ul', 'ol' or 'dl'`, () => {
235
+ render(
236
+ <Content component="p" isPlainList>
237
+ Test
238
+ </Content>
239
+ );
240
+ expect(screen.getByText('Test')).not.toHaveClass('pf-m-plain');
241
+ });
242
+
74
243
  test('Renders without class name pf-m-visited by default', () => {
75
- render(<Text>Test</Text>);
244
+ render(<Content>Test</Content>);
76
245
  expect(screen.getByText('Test')).not.toHaveClass('pf-m-visited');
77
246
  });
78
247
 
79
- test('Renders with class name pf-m-visited when isVisited=true and component="a"', () => {
248
+ test('Renders with class name pf-m-visited when isVisitedLink=true', () => {
249
+ render(<Content isVisitedLink={true}>Test</Content>);
250
+ expect(screen.getByText('Test')).toHaveClass('pf-m-visited');
251
+ });
252
+
253
+ test('Renders with class name pf-m-visited when isVisitedLink=true and component="a"', () => {
80
254
  render(
81
- <Text isVisitedLink={true} component="a">
255
+ <Content isVisitedLink={true} component="a">
82
256
  Test
83
- </Text>
257
+ </Content>
84
258
  );
85
259
  expect(screen.getByText('Test')).toHaveClass('pf-m-visited');
86
260
  });
87
261
 
88
262
  test('Renders with inherited element props spread to the component', () => {
89
- render(<Text aria-label="Test label">Test</Text>);
263
+ render(<Content aria-label="Test label">Test</Content>);
90
264
  expect(screen.getByText('Test')).toHaveAccessibleName('Test label');
91
265
  });
92
266
 
93
267
  test('Matches the snapshot', () => {
94
- const { asFragment } = render(<Text ouiaId="ouia-id">Test</Text>);
268
+ const { asFragment } = render(<Content ouiaId="ouia-id">Test</Content>);
95
269
  expect(asFragment()).toMatchSnapshot();
96
270
  });
@@ -5,7 +5,7 @@ exports[`Matches the snapshot 1`] = `
5
5
  <div
6
6
  class="pf-v6-c-content"
7
7
  data-ouia-component-id="ouia-id"
8
- data-ouia-component-type="PF6/Text"
8
+ data-ouia-component-type="PF6/Content"
9
9
  data-ouia-safe="true"
10
10
  data-pf-content="true"
11
11
  >
@@ -1,18 +1,26 @@
1
1
  ---
2
2
  id: Content
3
3
  section: components
4
- cssPrefix: pf-v5-c-content
5
- propComponents: ['TextContent', 'Text', 'TextList', 'TextListItem']
4
+ cssPrefix: pf-v6-c-content
5
+ propComponents: ['Content']
6
6
  ---
7
7
 
8
- The `<Text>` component provides simple, built-in styling for putting common blocks of HTML elements together. It establishes the block of content and styling within it for the elements listed in the `component` property(`h1` through `h6`, `p`, `a`, `small`, `blockquote`, and `pre`), as well as the text component suite `<TextList>`, and `<TextListItem>`. `TextContent` may be used as a container for the text components, but nesting them inside `<TextContent>` is not required.
8
+ The `<Content>` component allows you to establish a block of HTML content and apply simple, built-in styling. `<Content>` can be used for any element supported by the `component` property (including `h1` through `h6`, `hr`, `p`, `a`, `small`, `blockquote`, and `pre`).
9
9
 
10
- You cannot nest other components within `<Text>`, and doing so can cause styling overrides or other conflicts. Instead, you can use the `<Text>` component's properties to achieve the same results.
10
+ You cannot nest other components within `<Content>`, and doing so can cause styling overrides or other conflicts. Instead, you can use the `<Content>` component's properties to achieve the same results.
11
11
 
12
- For example, rather than nesting the `<List>` and `<Title>` components within `<Text>`, you should pass `component="h1"` into the `<TextList>` and `<Text>` components. Similarly, when you need to add a divider , rather than passing in a separate `<Divider>` component, you should utilize the `hr` property that `<Text>` supports, which will be styled as a divider.
12
+ For example, to create a level 1 heading, you should pass `component="h1"` to `<Content>`, instead of nesting a `<Title>` component within `<Content>`. Similarly, when you need to add a divider to a page, you should utilize the `hr` property of `<Content>` (which is styled as a divider), rather than using a separate `<Divider>` component.
13
13
 
14
14
  ## Examples
15
15
 
16
+ HTML elements wrapped by `<Content>` are styled by the content component.
17
+
18
+ ### Content as a wrapper
19
+
20
+ ```ts file="./ContentWrapper.tsx"
21
+
22
+ ```
23
+
16
24
  ### Headings
17
25
 
18
26
  ```ts file="./ContentHeadings.tsx"
@@ -49,14 +57,6 @@ For example, rather than nesting the `<List>` and `<Title>` components within `<
49
57
 
50
58
  ```
51
59
 
52
- Text components such as Text, TextList, TextListItem can be placed within a TextContent to provide styling for html elements, and additional styling options applied to the children.
53
-
54
- ### Wrapped in TextContent
55
-
56
- ```ts file="./ContentWrapper.tsx"
57
-
58
- ```
59
-
60
60
  ### Link and visited link
61
61
 
62
62
  ```ts file="./ContentVisited.tsx"
@@ -1,24 +1,26 @@
1
1
  import React from 'react';
2
- import { Text, TextVariants } from '@patternfly/react-core';
2
+ import { Content, ContentVariants } from '@patternfly/react-core';
3
3
 
4
4
  export const ContentBody: React.FunctionComponent = () => (
5
5
  <>
6
- <Text component={TextVariants.p}>
6
+ <Content component={ContentVariants.p}>
7
7
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla accumsan, metus ultrices eleifend gravida, nulla
8
8
  nunc varius lectus, nec rutrum justo nibh eu lectus. Ut vulputate semper dui. Fusce erat odio, sollicitudin vel
9
9
  erat vel, interdum mattis neque. Sub works as well!
10
- </Text>
11
- <Text component={TextVariants.p}>
10
+ </Content>
11
+ <Content component={ContentVariants.p}>
12
12
  Quisque ante lacus, malesuada ac auctor vitae, congue{' '}
13
- <Text component={TextVariants.a} href="#">
13
+ <Content component={ContentVariants.a} href="#">
14
14
  non ante
15
- </Text>
15
+ </Content>
16
16
  . Phasellus lacus ex, semper ac tortor nec, fringilla condimentum orci. Fusce eu rutrum tellus.
17
- </Text>
18
- <Text component={TextVariants.blockquote}>
17
+ </Content>
18
+ <Content component={ContentVariants.blockquote}>
19
19
  Ut venenatis, nisl scelerisque sollicitudin fermentum, quam libero hendrerit ipsum, ut blandit est tellus sit amet
20
20
  turpis.
21
- </Text>
22
- <Text component={TextVariants.small}>Sometimes you need small text to display things like date created</Text>
21
+ </Content>
22
+ <Content component={ContentVariants.small}>
23
+ Sometimes you need small text to display things like date created
24
+ </Content>
23
25
  </>
24
26
  );