@patternfly/react-core 6.0.0-alpha.86 → 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 (289) hide show
  1. package/CHANGELOG.md +16 -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/components/Page/Page.d.ts +2 -0
  124. package/dist/esm/components/Page/Page.d.ts.map +1 -1
  125. package/dist/esm/components/Page/Page.js +2 -2
  126. package/dist/esm/components/Page/Page.js.map +1 -1
  127. package/dist/esm/components/Page/PageGroup.d.ts +3 -1
  128. package/dist/esm/components/Page/PageGroup.d.ts.map +1 -1
  129. package/dist/esm/components/Page/PageGroup.js +2 -2
  130. package/dist/esm/components/Page/PageGroup.js.map +1 -1
  131. package/dist/esm/components/Page/PageSection.d.ts +1 -1
  132. package/dist/esm/components/Page/PageSection.d.ts.map +1 -1
  133. package/dist/esm/components/Wizard/Wizard.d.ts.map +1 -1
  134. package/dist/esm/components/Wizard/Wizard.js +5 -3
  135. package/dist/esm/components/Wizard/Wizard.js.map +1 -1
  136. package/dist/esm/components/Wizard/WizardContext.d.ts.map +1 -1
  137. package/dist/esm/components/Wizard/WizardContext.js +13 -3
  138. package/dist/esm/components/Wizard/WizardContext.js.map +1 -1
  139. package/dist/esm/demos/DashboardWrapper.d.ts.map +1 -1
  140. package/dist/esm/demos/DashboardWrapper.js +4 -4
  141. package/dist/esm/demos/DashboardWrapper.js.map +1 -1
  142. package/dist/js/components/Content/Content.d.ts +3 -3
  143. package/dist/js/components/Content/Content.d.ts.map +1 -1
  144. package/dist/js/components/Content/Content.js +26 -26
  145. package/dist/js/components/Content/Content.js.map +1 -1
  146. package/dist/js/components/Content/index.d.ts +0 -3
  147. package/dist/js/components/Content/index.d.ts.map +1 -1
  148. package/dist/js/components/Content/index.js +0 -3
  149. package/dist/js/components/Content/index.js.map +1 -1
  150. package/dist/js/components/Page/Page.d.ts +2 -0
  151. package/dist/js/components/Page/Page.d.ts.map +1 -1
  152. package/dist/js/components/Page/Page.js +2 -2
  153. package/dist/js/components/Page/Page.js.map +1 -1
  154. package/dist/js/components/Page/PageGroup.d.ts +3 -1
  155. package/dist/js/components/Page/PageGroup.d.ts.map +1 -1
  156. package/dist/js/components/Page/PageGroup.js +2 -2
  157. package/dist/js/components/Page/PageGroup.js.map +1 -1
  158. package/dist/js/components/Page/PageSection.d.ts +1 -1
  159. package/dist/js/components/Page/PageSection.d.ts.map +1 -1
  160. package/dist/js/components/Wizard/Wizard.d.ts.map +1 -1
  161. package/dist/js/components/Wizard/Wizard.js +5 -3
  162. package/dist/js/components/Wizard/Wizard.js.map +1 -1
  163. package/dist/js/components/Wizard/WizardContext.d.ts.map +1 -1
  164. package/dist/js/components/Wizard/WizardContext.js +13 -3
  165. package/dist/js/components/Wizard/WizardContext.js.map +1 -1
  166. package/dist/js/demos/DashboardWrapper.d.ts.map +1 -1
  167. package/dist/js/demos/DashboardWrapper.js +3 -3
  168. package/dist/js/demos/DashboardWrapper.js.map +1 -1
  169. package/dist/styles/base-no-reset.css +6 -6
  170. package/dist/styles/base.css +8 -8
  171. package/dist/umd/assets/{output-DncgfZci.css → output-DbCJu18k.css} +3884 -3885
  172. package/dist/umd/react-core.min.js +1 -1
  173. package/helpers/package.json +1 -1
  174. package/layouts/package.json +1 -1
  175. package/next/package.json +1 -1
  176. package/package.json +6 -6
  177. package/src/components/AboutModal/examples/AboutModalBasic.tsx +19 -19
  178. package/src/components/AboutModal/examples/AboutModalComplexUserPositionedContent.tsx +21 -21
  179. package/src/components/AboutModal/examples/AboutModalWithoutProductName.tsx +19 -19
  180. package/src/components/Content/Content.tsx +6 -6
  181. package/src/components/Content/__tests__/Content.test.tsx +194 -20
  182. package/src/components/Content/__tests__/__snapshots__/Content.test.tsx.snap +1 -1
  183. package/src/components/Content/examples/Content.md +13 -13
  184. package/src/components/Content/examples/ContentBody.tsx +12 -10
  185. package/src/components/Content/examples/ContentDescriptionList.tsx +9 -11
  186. package/src/components/Content/examples/ContentHeadings.tsx +7 -7
  187. package/src/components/Content/examples/ContentOrderedList.tsx +10 -10
  188. package/src/components/Content/examples/ContentPlainList.tsx +22 -18
  189. package/src/components/Content/examples/ContentUnorderedList.tsx +12 -12
  190. package/src/components/Content/examples/ContentVisited.tsx +23 -23
  191. package/src/components/Content/examples/ContentWrapper.tsx +7 -7
  192. package/src/components/Content/index.ts +0 -3
  193. package/src/components/DataList/examples/DataListWidthModifiers.tsx +10 -12
  194. package/src/components/Icon/examples/IconInline.tsx +10 -12
  195. package/src/components/Modal/examples/ModalCustomHeader.tsx +4 -6
  196. package/src/components/Page/Page.tsx +4 -1
  197. package/src/components/Page/PageGroup.tsx +5 -0
  198. package/src/components/Page/PageSection.tsx +1 -1
  199. package/src/components/Page/__tests__/Page.test.tsx +21 -0
  200. package/src/components/Page/__tests__/PageGroup.test.tsx +20 -0
  201. package/src/components/Page/__tests__/PageSection.test.tsx +27 -0
  202. package/src/components/Page/examples/Page.md +2 -2
  203. package/src/components/Page/examples/PageWithOrWithoutFill.tsx +4 -5
  204. package/src/components/Slider/examples/SliderActions.tsx +2 -2
  205. package/src/components/Slider/examples/SliderContinuous.tsx +3 -3
  206. package/src/components/Slider/examples/SliderDisabled.tsx +2 -2
  207. package/src/components/Slider/examples/SliderDiscrete.tsx +14 -14
  208. package/src/components/Spinner/examples/SpinnerInline.tsx +10 -12
  209. package/src/components/Wizard/Wizard.tsx +5 -3
  210. package/src/components/Wizard/WizardContext.tsx +13 -4
  211. package/src/demos/Banner.md +14 -25
  212. package/src/demos/CardView/examples/CardView.tsx +5 -6
  213. package/src/demos/DashboardWrapper.tsx +6 -7
  214. package/src/demos/DataList/examples/DataListBasic.tsx +17 -20
  215. package/src/demos/DataList/examples/DataListExpandableControlInToolbar.tsx +7 -9
  216. package/src/demos/DescriptionList/examples/DescriptionListBasic.tsx +6 -8
  217. package/src/demos/JumpLinks.md +3 -3
  218. package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +7 -8
  219. package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +7 -8
  220. package/src/demos/RTL/examples/PaginatedTable.jsx +5 -7
  221. package/src/demos/RTL/examples/PaginatedTable.tsx +5 -7
  222. package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +14 -15
  223. package/src/demos/examples/BackToTop/BackToTopNameDemo.tsx +7 -8
  224. package/src/demos/examples/DashboardWrapper.js +6 -7
  225. package/src/demos/examples/JumpLinks/JumpLinksWithDrawer.js +3 -3
  226. package/src/demos/examples/Masthead/MastheadWithHorizontalNav.tsx +9 -13
  227. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +5 -6
  228. package/src/demos/examples/Nav/NavDefault.tsx +8 -9
  229. package/src/demos/examples/Nav/NavExpandable.tsx +8 -9
  230. package/src/demos/examples/Nav/NavGrouped.tsx +8 -9
  231. package/src/demos/examples/Nav/NavHorizontal.tsx +7 -8
  232. package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +7 -8
  233. package/src/demos/examples/Nav/NavManual.tsx +7 -8
  234. package/src/demos/examples/Nav/NavWithSubnav.tsx +8 -9
  235. package/src/demos/examples/Page/PageContextSelector.tsx +5 -6
  236. package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +5 -6
  237. package/src/demos/examples/Page/PageStickySectionGroup.tsx +5 -6
  238. package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +5 -6
  239. package/src/demos/examples/PrimaryDetail/PrimaryDetailCardView.tsx +10 -14
  240. package/src/demos/examples/PrimaryDetail/PrimaryDetailContentPadding.tsx +7 -8
  241. package/src/demos/examples/PrimaryDetail/PrimaryDetailDataListInCard.tsx +8 -10
  242. package/src/demos/examples/PrimaryDetail/PrimaryDetailFullPage.tsx +7 -8
  243. package/src/demos/examples/PrimaryDetail/PrimaryDetailInlineModifier.tsx +7 -8
  244. package/src/demos/examples/PrimaryDetail/PrimaryDetailSimpleListInCard.tsx +8 -10
  245. package/src/demos/examples/Tabs/ModalTabs.tsx +5 -6
  246. package/src/demos/examples/Tabs/NestedUnindentedTabs.tsx +4 -5
  247. package/src/demos/examples/Wizard/InModalWithDrawerInformationalStep.tsx +4 -6
  248. package/src/demos/examples/Wizard/InPageWithDrawer.tsx +5 -6
  249. package/src/demos/examples/Wizard/InPageWithDrawerInformationalStep.tsx +8 -9
  250. package/dist/esm/components/Content/TextContent.d.ts +0 -11
  251. package/dist/esm/components/Content/TextContent.d.ts.map +0 -1
  252. package/dist/esm/components/Content/TextContent.js +0 -10
  253. package/dist/esm/components/Content/TextContent.js.map +0 -1
  254. package/dist/esm/components/Content/TextList.d.ts +0 -18
  255. package/dist/esm/components/Content/TextList.d.ts.map +0 -1
  256. package/dist/esm/components/Content/TextList.js +0 -22
  257. package/dist/esm/components/Content/TextList.js.map +0 -1
  258. package/dist/esm/components/Content/TextListItem.d.ts +0 -16
  259. package/dist/esm/components/Content/TextListItem.d.ts.map +0 -1
  260. package/dist/esm/components/Content/TextListItem.js +0 -22
  261. package/dist/esm/components/Content/TextListItem.js.map +0 -1
  262. package/dist/js/components/Content/TextContent.d.ts +0 -11
  263. package/dist/js/components/Content/TextContent.d.ts.map +0 -1
  264. package/dist/js/components/Content/TextContent.js +0 -14
  265. package/dist/js/components/Content/TextContent.js.map +0 -1
  266. package/dist/js/components/Content/TextList.d.ts +0 -18
  267. package/dist/js/components/Content/TextList.d.ts.map +0 -1
  268. package/dist/js/components/Content/TextList.js +0 -26
  269. package/dist/js/components/Content/TextList.js.map +0 -1
  270. package/dist/js/components/Content/TextListItem.d.ts +0 -16
  271. package/dist/js/components/Content/TextListItem.d.ts.map +0 -1
  272. package/dist/js/components/Content/TextListItem.js +0 -26
  273. package/dist/js/components/Content/TextListItem.js.map +0 -1
  274. package/src/components/Content/TextContent.tsx +0 -25
  275. package/src/components/Content/TextList.tsx +0 -43
  276. package/src/components/Content/TextListItem.tsx +0 -40
  277. package/src/components/Content/__tests__/Generated/TextContent.test.tsx +0 -13
  278. package/src/components/Content/__tests__/Generated/TextList.test.tsx +0 -13
  279. package/src/components/Content/__tests__/Generated/TextListItem.test.tsx +0 -13
  280. package/src/components/Content/__tests__/Generated/__snapshots__/TextContent.test.tsx.snap +0 -11
  281. package/src/components/Content/__tests__/Generated/__snapshots__/TextList.test.tsx.snap +0 -11
  282. package/src/components/Content/__tests__/Generated/__snapshots__/TextListItem.test.tsx.snap +0 -11
  283. package/src/components/Content/__tests__/TextContent.test.tsx +0 -48
  284. package/src/components/Content/__tests__/TextList.test.tsx +0 -52
  285. package/src/components/Content/__tests__/TextListItem.test.tsx +0 -47
  286. package/src/components/Content/__tests__/__snapshots__/TextContent.test.tsx.snap +0 -11
  287. package/src/components/Content/__tests__/__snapshots__/TextList.test.tsx.snap +0 -11
  288. package/src/components/Content/__tests__/__snapshots__/TextListItem.test.tsx.snap +0 -11
  289. package/src/components/Text/examples/Text.md +0 -8
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Slider, SliderOnChangeEvent, Text, TextVariants } from '@patternfly/react-core';
2
+ import { Slider, SliderOnChangeEvent, Content } from '@patternfly/react-core';
3
3
 
4
4
  export const SliderDiscrete: React.FunctionComponent = () => {
5
5
  const initialValues = {
@@ -50,15 +50,15 @@ export const SliderDiscrete: React.FunctionComponent = () => {
50
50
 
51
51
  return (
52
52
  <>
53
- <Text component={TextVariants.h3}>Slider value is: {numValue.value1}</Text>
53
+ <Content component="h3">Slider value is: {numValue.value1}</Content>
54
54
  <Slider
55
55
  value={initialValues.value1}
56
56
  onChange={(_event: SliderOnChangeEvent, value: number) => handleChange(value, 'value1')}
57
57
  customSteps={steps}
58
58
  />
59
59
  <br />
60
- <Text component={TextVariants.h3}>Slider value is: {numValue.value2}</Text>
61
- <Text component={TextVariants.small}>(min = 0, max = 200, step = 50) </Text>
60
+ <Content component="h3">Slider value is: {numValue.value2}</Content>
61
+ <Content component="small">(min = 0, max = 200, step = 50) </Content>
62
62
  <Slider
63
63
  value={initialValues.value2}
64
64
  onChange={(_event: SliderOnChangeEvent, value: number) => handleChange(value, 'value2')}
@@ -67,8 +67,8 @@ export const SliderDiscrete: React.FunctionComponent = () => {
67
67
  showTicks
68
68
  />
69
69
  <br />
70
- <Text component={TextVariants.h3}>Slider value is: {Math.floor(numValue.value3)}</Text>
71
- <Text component={TextVariants.small}>(min = -25, max = 75, step = 10, boundaries not shown) </Text>
70
+ <Content component="h3">Slider value is: {Math.floor(numValue.value3)}</Content>
71
+ <Content component="small">(min = -25, max = 75, step = 10, boundaries not shown) </Content>
72
72
  <Slider
73
73
  value={initialValues.value3}
74
74
  onChange={(_event: SliderOnChangeEvent, value: number) => handleChange(value, 'value3')}
@@ -79,8 +79,8 @@ export const SliderDiscrete: React.FunctionComponent = () => {
79
79
  showBoundaries={false}
80
80
  />
81
81
  <br />
82
- <Text component={TextVariants.h3}>Slider value is: {Math.floor(numValue.value4)}</Text>
83
- <Text component={TextVariants.small}>(min = -25, max = 75, step = 10, boundaries shown) </Text>
82
+ <Content component="h3">Slider value is: {Math.floor(numValue.value4)}</Content>
83
+ <Content component="small">(min = -25, max = 75, step = 10, boundaries shown) </Content>
84
84
  <Slider
85
85
  value={initialValues.value4}
86
86
  onChange={(_event: SliderOnChangeEvent, value: number) => handleChange(value, 'value4')}
@@ -90,8 +90,8 @@ export const SliderDiscrete: React.FunctionComponent = () => {
90
90
  showTicks
91
91
  />
92
92
  <br />
93
- <Text component={TextVariants.h3}>Slider value is: {Math.floor(numValue.value5)}</Text>
94
- <Text component={TextVariants.small}>(min = -25, max = 75, step = 10, boundaries shown, ticks not shown) </Text>
93
+ <Content component="h3">Slider value is: {Math.floor(numValue.value5)}</Content>
94
+ <Content component="small">(min = -25, max = 75, step = 10, boundaries shown, ticks not shown) </Content>
95
95
  <Slider
96
96
  value={initialValues.value5}
97
97
  onChange={(_event: SliderOnChangeEvent, value: number) => handleChange(value, 'value5')}
@@ -100,8 +100,8 @@ export const SliderDiscrete: React.FunctionComponent = () => {
100
100
  step={10}
101
101
  />
102
102
  <br />
103
- <Text component={TextVariants.h3}>Slider value is: {Math.floor(numValue.value6)}</Text>
104
- <Text component={TextVariants.small}>(max = 5, custom steps) </Text>
103
+ <Content component="h3">Slider value is: {Math.floor(numValue.value6)}</Content>
104
+ <Content component="small">(max = 5, custom steps) </Content>
105
105
  <Slider
106
106
  value={initialValues.value6}
107
107
  showTicks
@@ -110,8 +110,8 @@ export const SliderDiscrete: React.FunctionComponent = () => {
110
110
  onChange={(_event: SliderOnChangeEvent, value: number) => handleChange(value, 'value6')}
111
111
  />
112
112
  <br />
113
- <Text component={TextVariants.h3}>Slider value is: {Math.floor(numValue.value7)}</Text>
114
- <Text component={TextVariants.small}>(min = 12, max = 86, custom steps with non linear data) </Text>
113
+ <Content component="h3">Slider value is: {Math.floor(numValue.value7)}</Content>
114
+ <Content component="small">(min = 12, max = 86, custom steps with non linear data) </Content>
115
115
  <Slider
116
116
  value={initialValues.value7}
117
117
  showTicks
@@ -1,29 +1,27 @@
1
1
  import React from 'react';
2
- import { Spinner, Text, TextContent } from '@patternfly/react-core';
2
+ import { Spinner, Content } from '@patternfly/react-core';
3
3
 
4
4
  export const SpinnerInline: React.FunctionComponent = () => (
5
5
  <React.Fragment>
6
- <TextContent>
7
- <Text component="h1">
6
+ <Content>
7
+ <h1>
8
8
  Heading
9
9
  <Spinner isInline aria-label="Spinner in a heading" />
10
- </Text>
11
- <Text component="p">
12
- Lorem ipsum dolor sit amet, consectetur adipiscing elit Sed hendrerit nisi in cursus maximus.
13
- </Text>
14
- <Text component="h2">
10
+ </h1>
11
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit Sed hendrerit nisi in cursus maximus.</p>
12
+ <h2>
15
13
  Second level
16
14
  <Spinner isInline aria-label="spinner in a subheading" />
17
- </Text>
18
- <Text component="p">
15
+ </h2>
16
+ <p>
19
17
  Curabitur accumsan turpis pharetra blandit. Quisque condimentum maximus mi,{' '}
20
18
  <Spinner isInline aria-label="Spinner in a paragraph" /> sit amet commodo arcu rutrum id. Proin pretium urna vel
21
19
  cursus venenatis. Suspendisse potenti.
22
- </Text>
20
+ </p>
23
21
  <small>
24
22
  Sometimes you need small text
25
23
  <Spinner isInline aria-label="Spinner in a small element" />
26
24
  </small>
27
- </TextContent>
25
+ </Content>
28
26
  </React.Fragment>
29
27
  );
@@ -92,10 +92,12 @@ export const Wizard = ({
92
92
  }
93
93
  }, [startIndex]);
94
94
 
95
- // When children change, active step index should reset
95
+ // When the number of steps changes and pushes activeStepIndex out of bounds, reset back to startIndex
96
96
  React.useEffect(() => {
97
- setActiveStepIndex(startIndex);
98
- }, [children, startIndex]);
97
+ if (activeStepIndex > initialSteps.length) {
98
+ setActiveStepIndex(startIndex);
99
+ }
100
+ }, [initialSteps, activeStepIndex, startIndex]);
99
101
 
100
102
  const focusMainContentElement = () =>
101
103
  setTimeout(() => {
@@ -74,10 +74,20 @@ export const WizardContextProvider: React.FunctionComponent<WizardContextProvide
74
74
  const [currentSteps, setCurrentSteps] = React.useState<WizardStepType[]>(initialSteps);
75
75
  const [currentFooter, setCurrentFooter] = React.useState<WizardFooterType>();
76
76
 
77
- // Callback to update steps if they change after initial render
77
+ // Callback to update steps if the overall step number changes
78
78
  React.useEffect(() => {
79
- setCurrentSteps(initialSteps);
80
- }, [initialSteps]);
79
+ if (currentSteps.length !== initialSteps.length) {
80
+ const newSteps = initialSteps.map((newStep) => {
81
+ const currentStepMatch = currentSteps.find((step) => step.id === newStep.id);
82
+ // If an existing step has the same id as a new step, carry over props
83
+ if (currentStepMatch) {
84
+ return { ...currentStepMatch, ...newStep };
85
+ }
86
+ return newStep;
87
+ });
88
+ setCurrentSteps(newSteps);
89
+ }
90
+ }, [currentSteps, initialSteps]);
81
91
 
82
92
  // Combined initial and current state steps
83
93
  const steps = React.useMemo(
@@ -130,7 +140,6 @@ export const WizardContextProvider: React.FunctionComponent<WizardContextProvide
130
140
  if (prevStep.id === step.id) {
131
141
  return { ...prevStep, ...step };
132
142
  }
133
-
134
143
  return prevStep;
135
144
  })
136
145
  ),
@@ -13,17 +13,7 @@ import { DashboardWrapper } from '@patternfly/react-core/dist/js/demos/Dashboard
13
13
 
14
14
  ```js isFullscreen
15
15
  import React from 'react';
16
- import {
17
- Banner,
18
- Card,
19
- CardBody,
20
- Flex,
21
- Gallery,
22
- GalleryItem,
23
- PageSection,
24
- TextContent,
25
- Text
26
- } from '@patternfly/react-core';
16
+ import { Banner, Card, CardBody, Flex, Gallery, GalleryItem, PageSection, Content } from '@patternfly/react-core';
27
17
 
28
18
  import { DashboardWrapper } from '@patternfly/react-core/dist/js/demos/DashboardWrapper';
29
19
  import { css } from '@patternfly/react-styles';
@@ -48,13 +38,13 @@ class BannerDemo extends React.Component {
48
38
  </Flex>
49
39
  </Banner>
50
40
  <PageSection>
51
- <TextContent>
52
- <Text component="h1">Main title</Text>
53
- <Text component="p">
54
- Body text should be Overpass Regular at 16px. It should have leading of 24px because <br />
41
+ <Content>
42
+ <h1>Main title</h1>
43
+ <p>
44
+ Body text should be Red Hat Text at 1rem(16px). It should have leading of 1.5rem(24px) because <br />
55
45
  of it’s relative line height of 1.5.
56
- </Text>
57
- </TextContent>
46
+ </p>
47
+ </Content>
58
48
  </PageSection>
59
49
  <PageSection>
60
50
  <Gallery hasGutter>
@@ -87,8 +77,7 @@ import {
87
77
  Gallery,
88
78
  GalleryItem,
89
79
  PageSection,
90
- TextContent,
91
- Text
80
+ Content
92
81
  } from '@patternfly/react-core';
93
82
  import { DashboardWrapper } from '@patternfly/react-core/dist/js/demos/DashboardWrapper';
94
83
  import { css } from '@patternfly/react-styles';
@@ -122,13 +111,13 @@ class BannerDemo extends React.Component {
122
111
  <FlexItem grow={{ default: 'grow' }} style={{ minHeight: 0 }}>
123
112
  <DashboardWrapper breadcrumb={null}>
124
113
  <PageSection>
125
- <TextContent>
126
- <Text component="h1">Main title</Text>
127
- <Text component="p">
128
- Body text should be Overpass Regular at 16px. It should have leading of 24px because <br />
114
+ <Content>
115
+ <h1>Main title</h1>
116
+ <p>
117
+ Body text should be Red Hat Text at 1rem(16px). It should have leading of 1.5rem(24px) because <br />
129
118
  of it’s relative line height of 1.5.
130
- </Text>
131
- </TextContent>
119
+ </p>
120
+ </Content>
132
121
  </PageSection>
133
122
  <PageSection>
134
123
  <Gallery hasGutter>
@@ -7,6 +7,7 @@ import {
7
7
  CardHeader,
8
8
  CardTitle,
9
9
  CardBody,
10
+ Content,
10
11
  Divider,
11
12
  Dropdown,
12
13
  DropdownItem,
@@ -24,8 +25,6 @@ import {
24
25
  OverflowMenuItem,
25
26
  PageSection,
26
27
  Pagination,
27
- TextContent,
28
- Text,
29
28
  Toolbar,
30
29
  ToolbarItem,
31
30
  ToolbarFilter,
@@ -470,10 +469,10 @@ export const CardViewBasic: React.FunctionComponent = () => {
470
469
  <React.Fragment>
471
470
  <DashboardWrapper mainContainerId="main-content-card-view-default-nav" breadcrumb={null}>
472
471
  <PageSection>
473
- <TextContent>
474
- <Text component="h1">Projects</Text>
475
- <Text component="p">This is a demo that showcases PatternFly cards.</Text>
476
- </TextContent>
472
+ <Content>
473
+ <h1>Projects</h1>
474
+ <p>This is a demo that showcases PatternFly cards.</p>
475
+ </Content>
477
476
  <Toolbar id="toolbar-group-types" clearAllFilters={onDelete}>
478
477
  <ToolbarContent>{toolbarItems}</ToolbarContent>
479
478
  </Toolbar>
@@ -2,6 +2,7 @@ import React, { useState } from 'react';
2
2
  import {
3
3
  Breadcrumb,
4
4
  BreadcrumbItem,
5
+ Content,
5
6
  Nav,
6
7
  NavItem,
7
8
  NavList,
@@ -10,9 +11,7 @@ import {
10
11
  PageSection,
11
12
  PageSidebar,
12
13
  PageSidebarBody,
13
- SkipToContent,
14
- Text,
15
- TextContent
14
+ SkipToContent
16
15
  } from '../components';
17
16
  import { DashboardHeader } from './DashboardHeader';
18
17
 
@@ -38,10 +37,10 @@ export const DashboardBreadcrumb = (
38
37
 
39
38
  const PageTemplateTitle = (
40
39
  <PageSection>
41
- <TextContent>
42
- <Text component="h1">Main title</Text>
43
- <Text component="p">This is a full page demo.</Text>
44
- </TextContent>
40
+ <Content>
41
+ <h1>Main title</h1>
42
+ <p>This is a full page demo.</p>
43
+ </Content>
45
44
  </PageSection>
46
45
  );
47
46
 
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import {
3
3
  Button,
4
+ Content,
4
5
  DataList,
5
6
  DataListItem,
6
7
  DataListCell,
@@ -14,11 +15,7 @@ import {
14
15
  OverflowMenuControl,
15
16
  OverflowMenuItem,
16
17
  PageSection,
17
- PageSectionVariants,
18
18
  Pagination,
19
- Text,
20
- TextContent,
21
- TextVariants,
22
19
  Toolbar,
23
20
  ToolbarItem,
24
21
  ToolbarContent
@@ -76,11 +73,11 @@ export const DataListBasic: React.FunctionComponent = () => {
76
73
  return (
77
74
  <React.Fragment>
78
75
  <DashboardWrapper mainContainerId="main-content-datalist-view-default-nav" breadcrumb={null}>
79
- <PageSection variant={PageSectionVariants.light}>
80
- <TextContent>
81
- <Text component="h1">Projects</Text>
82
- <Text component="p">This is a demo that showcases PatternFly Data List</Text>
83
- </TextContent>
76
+ <PageSection>
77
+ <Content>
78
+ <h1>Projects</h1>
79
+ <p>This is a demo that showcases PatternFly data list</p>
80
+ </Content>
84
81
  </PageSection>
85
82
  <PageSection isFilled>
86
83
  <Toolbar id="toolbar-group-types">
@@ -94,13 +91,13 @@ export const DataListBasic: React.FunctionComponent = () => {
94
91
  <DataListCell isFilled={false} key="buttons1">
95
92
  <Flex direction={{ default: 'column' }}>
96
93
  <FlexItem>
97
- <Text component={TextVariants.p}>patternfly</Text>
94
+ <Content component="p">patternfly</Content>
98
95
  </FlexItem>
99
96
  <FlexItem>
100
- <Text component={TextVariants.small}>
97
+ <Content component="small">
101
98
  Working repo for
102
99
  <a href="http://www.patternfly.org/">PatternFly</a>
103
- </Text>
100
+ </Content>
104
101
  </FlexItem>
105
102
  <FlexItem>
106
103
  <Flex spaceItems={{ default: 'spaceItemsSm' }}>
@@ -139,10 +136,10 @@ export const DataListBasic: React.FunctionComponent = () => {
139
136
  <DataListCell isFilled={false} key="buttons2">
140
137
  <Flex direction={{ default: 'column' }}>
141
138
  <FlexItem>
142
- <Text component={TextVariants.small}>patternfly-elements</Text>
139
+ <Content component="small">patternfly-elements</Content>
143
140
  </FlexItem>
144
141
  <FlexItem>
145
- <Text component={TextVariants.small}>PatternFly elements</Text>
142
+ <Content component="small">PatternFly elements</Content>
146
143
  </FlexItem>
147
144
  <FlexItem>
148
145
  <Flex spaceItems={{ default: 'spaceItemsSm' }}>
@@ -191,7 +188,7 @@ export const DataListBasic: React.FunctionComponent = () => {
191
188
  <DataListCell isFilled={false} key="Demo-item3">
192
189
  <Flex direction={{ default: 'column' }}>
193
190
  <FlexItem>
194
- <Text component={TextVariants.small}>patternfly-unified-design-kit</Text>
191
+ <Content component="small">patternfly-unified-design-kit</Content>
195
192
  </FlexItem>
196
193
  </Flex>
197
194
  </DataListCell>,
@@ -216,13 +213,13 @@ export const DataListBasic: React.FunctionComponent = () => {
216
213
  <DataListCell isFilled={false} key="buttons4">
217
214
  <Flex direction={{ default: 'column' }}>
218
215
  <FlexItem>
219
- <Text component={TextVariants.small}>patternfly</Text>
216
+ <Content component="small">patternfly</Content>
220
217
  </FlexItem>
221
218
  <FlexItem>
222
- <Text component={TextVariants.small}>
219
+ <Content component="small">
223
220
  Working repo for
224
221
  <a href="http://www.patternfly.org/">PatternFly</a>
225
- </Text>
222
+ </Content>
226
223
  </FlexItem>
227
224
  <FlexItem>
228
225
  <Flex spaceItems={{ default: 'spaceItemsSm' }}>
@@ -262,10 +259,10 @@ export const DataListBasic: React.FunctionComponent = () => {
262
259
  <DataListCell isFilled={false} key="buttons5">
263
260
  <Flex direction={{ default: 'column' }}>
264
261
  <FlexItem>
265
- <Text component={TextVariants.small}>patternfly-elements</Text>
262
+ <Content component="small">patternfly-elements</Content>
266
263
  </FlexItem>
267
264
  <FlexItem>
268
- <Text component={TextVariants.small}>PatternFly elements</Text>
265
+ <Content component="small">PatternFly elements</Content>
269
266
  </FlexItem>
270
267
  <FlexItem>
271
268
  <Flex spaceItems={{ default: 'spaceItemsSm' }}>
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import {
3
3
  Button,
4
+ Content,
4
5
  DataList,
5
6
  DataListItem,
6
7
  DataListItemRow,
@@ -22,10 +23,7 @@ import {
22
23
  SearchInput,
23
24
  Tooltip,
24
25
  Icon,
25
- PageSection,
26
- PageSectionVariants,
27
- Text,
28
- TextContent
26
+ PageSection
29
27
  } from '@patternfly/react-core';
30
28
 
31
29
  import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper';
@@ -135,11 +133,11 @@ export const DataListExpandableControlInToolbar: React.FunctionComponent = () =>
135
133
  return (
136
134
  <React.Fragment>
137
135
  <DashboardWrapper mainContainerId="main-content-datalist-view-default-nav" breadcrumb={null}>
138
- <PageSection variant={PageSectionVariants.light}>
139
- <TextContent>
140
- <Text component="h1">Projects</Text>
141
- <Text component="p">This is a demo that showcases PatternFly Data List</Text>
142
- </TextContent>
136
+ <PageSection>
137
+ <Content>
138
+ <h1>Projects</h1>
139
+ <p>This is a demo that showcases PatternFly data list</p>
140
+ </Content>
143
141
  </PageSection>
144
142
  <PageSection isFilled>
145
143
  {renderToolbar()}
@@ -5,12 +5,10 @@ import {
5
5
  DescriptionListGroup,
6
6
  DescriptionListDescription,
7
7
  PageSection,
8
- PageSectionVariants,
9
8
  Card,
10
9
  CardBody,
11
10
  CardHeader,
12
- TextContent,
13
- Text,
11
+ Content,
14
12
  Title,
15
13
  Divider,
16
14
  Flex,
@@ -21,11 +19,11 @@ import { DashboardWrapper } from '@patternfly/react-core/dist/js/demos/Dashboard
21
19
 
22
20
  export const DescriptionListBasic: React.FunctionComponent = () => (
23
21
  <DashboardWrapper>
24
- <PageSection variant={PageSectionVariants.light}>
25
- <TextContent>
26
- <Title headingLevel="h1">Projects</Title>
27
- <Text component="p">This is a full page demo</Text>
28
- </TextContent>
22
+ <PageSection>
23
+ <Content>
24
+ <Content component="h1">Projects</Content>
25
+ <Content component="p">This is a full page demo</Content>
26
+ </Content>
29
27
  </PageSection>
30
28
  <PageSection>
31
29
  <Card>
@@ -32,7 +32,7 @@ import {
32
32
  SidebarPanel,
33
33
  Switch,
34
34
  Title,
35
- TextContent,
35
+ Content,
36
36
  getResizeObserver
37
37
  } from '@patternfly/react-core';
38
38
  import { DashboardWrapper } from '@patternfly/react-core/dist/js/demos/DashboardWrapper';
@@ -101,7 +101,7 @@ ScrollspyH2 = () => {
101
101
  </SidebarPanel>
102
102
  <SidebarContent hasNoBackground>
103
103
  <PageSection>
104
- <TextContent>
104
+ <Content>
105
105
  {headings.map(i => (
106
106
  <div key={i} style={{ maxWidth: '800px', marginBottom: '32px' }}>
107
107
  <h2 id={`heading-${i}`} tabIndex={-1}>
@@ -128,7 +128,7 @@ ScrollspyH2 = () => {
128
128
  </p>
129
129
  </div>
130
130
  ))}
131
- </TextContent>
131
+ </Content>
132
132
  </PageSection>
133
133
  </SidebarContent>
134
134
  </Sidebar>
@@ -6,6 +6,7 @@ import {
6
6
  BreadcrumbItem,
7
7
  Button,
8
8
  ButtonVariant,
9
+ Content,
9
10
  Divider,
10
11
  Dropdown,
11
12
  DropdownItem,
@@ -32,8 +33,6 @@ import {
32
33
  PageSidebar,
33
34
  PageSidebarBody,
34
35
  SkipToContent,
35
- TextContent,
36
- Text,
37
36
  PageToggleButton,
38
37
  Masthead,
39
38
  MastheadMain,
@@ -530,13 +529,13 @@ export const NotificationDrawerBasic: React.FunctionComponent = () => {
530
529
  mainContainerId={pageId}
531
530
  >
532
531
  <PageSection>
533
- <TextContent>
534
- <Text component="h1">Main title</Text>
535
- <Text component="p">
536
- Body text should be Overpass Regular at 16px. It should have leading of 24px because <br />
532
+ <Content>
533
+ <h1>Main title</h1>
534
+ <p>
535
+ Body text should be Red Hat Text at 1rem(16px). It should have leading of 1.5rem(24px) because <br />
537
536
  of its relative line height of 1.5.
538
- </Text>
539
- </TextContent>
537
+ </p>
538
+ </Content>
540
539
  </PageSection>
541
540
  <PageSection>Panel section content</PageSection>
542
541
  </Page>
@@ -6,6 +6,7 @@ import {
6
6
  BreadcrumbItem,
7
7
  Button,
8
8
  ButtonVariant,
9
+ Content,
9
10
  Divider,
10
11
  Dropdown,
11
12
  DropdownItem,
@@ -34,8 +35,6 @@ import {
34
35
  PageSidebar,
35
36
  PageSidebarBody,
36
37
  SkipToContent,
37
- TextContent,
38
- Text,
39
38
  PageToggleButton,
40
39
  Masthead,
41
40
  MastheadMain,
@@ -769,13 +768,13 @@ export const NotificationDrawerGrouped: React.FunctionComponent = () => {
769
768
  mainContainerId={pageId}
770
769
  >
771
770
  <PageSection>
772
- <TextContent>
773
- <Text component="h1">Main title</Text>
774
- <Text component="p">
775
- Body text should be Overpass Regular at 16px. It should have leading of 24px because <br />
771
+ <Content>
772
+ <h1>Main title</h1>
773
+ <p>
774
+ Body text should be Red Hat Text at 1rem(16px). It should have leading of 1.5rem(24px) because <br />
776
775
  of its relative line height of 1.5.
777
- </Text>
778
- </TextContent>
776
+ </p>
777
+ </Content>
779
778
  </PageSection>
780
779
  <PageSection>Panel section content</PageSection>
781
780
  </Page>
@@ -8,6 +8,7 @@ import {
8
8
  Button,
9
9
  ButtonVariant,
10
10
  Card,
11
+ Content,
11
12
  Divider,
12
13
  Dropdown,
13
14
  DropdownGroup,
@@ -32,9 +33,6 @@ import {
32
33
  PageToggleButton,
33
34
  Pagination,
34
35
  PaginationVariant,
35
- Text,
36
- TextContent,
37
- TextVariants,
38
36
  Toolbar,
39
37
  ToolbarContent,
40
38
  ToolbarGroup,
@@ -448,10 +446,10 @@ export const PaginatedTableAction = () => {
448
446
  </Breadcrumb>
449
447
  </PageBreadcrumb>
450
448
  <PageSection variant="light">
451
- <TextContent>
452
- <Text component={TextVariants.h1}>{translation.title}</Text>
453
- <Text component={TextVariants.p}>{translation.body}</Text>
454
- </TextContent>
449
+ <Content>
450
+ <h1>{translation.title}</h1>
451
+ <p>{translation.body}</p>
452
+ </Content>
455
453
  </PageSection>
456
454
  <PageSection>
457
455
  <Card>
@@ -8,6 +8,7 @@ import {
8
8
  Button,
9
9
  ButtonVariant,
10
10
  Card,
11
+ Content,
11
12
  Divider,
12
13
  Dropdown,
13
14
  DropdownGroup,
@@ -32,9 +33,6 @@ import {
32
33
  PageToggleButton,
33
34
  Pagination,
34
35
  PaginationVariant,
35
- Text,
36
- TextContent,
37
- TextVariants,
38
36
  Toolbar,
39
37
  ToolbarContent,
40
38
  ToolbarGroup,
@@ -474,10 +472,10 @@ export const PaginatedTableAction: React.FunctionComponent = () => {
474
472
  </Breadcrumb>
475
473
  </PageBreadcrumb>
476
474
  <PageSection variant="light">
477
- <TextContent>
478
- <Text component={TextVariants.h1}>{translation.title}</Text>
479
- <Text component={TextVariants.p}>{translation.body}</Text>
480
- </TextContent>
475
+ <Content>
476
+ <h1>{translation.title}</h1>
477
+ <p>{translation.body}</p>
478
+ </Content>
481
479
  </PageSection>
482
480
  <PageSection>
483
481
  <Card>