@patternfly/react-core 6.6.1-prerelease.8 → 6.6.1-prerelease.9
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.
- package/CHANGELOG.md +6 -0
- package/components/package.json +1 -1
- package/deprecated/package.json +1 -1
- package/dist/dynamic/components/AboutModal/package.json +1 -1
- package/dist/dynamic/components/Accordion/package.json +1 -1
- package/dist/dynamic/components/ActionList/package.json +1 -1
- package/dist/dynamic/components/Alert/package.json +1 -1
- package/dist/dynamic/components/Avatar/package.json +1 -1
- package/dist/dynamic/components/BackToTop/package.json +1 -1
- package/dist/dynamic/components/Backdrop/package.json +1 -1
- package/dist/dynamic/components/BackgroundImage/package.json +1 -1
- package/dist/dynamic/components/Badge/package.json +1 -1
- package/dist/dynamic/components/Banner/package.json +1 -1
- package/dist/dynamic/components/Brand/package.json +1 -1
- package/dist/dynamic/components/Breadcrumb/package.json +1 -1
- package/dist/dynamic/components/Button/package.json +1 -1
- package/dist/dynamic/components/CalendarMonth/package.json +1 -1
- package/dist/dynamic/components/Card/package.json +1 -1
- package/dist/dynamic/components/Checkbox/package.json +1 -1
- package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
- package/dist/dynamic/components/CodeBlock/package.json +1 -1
- package/dist/dynamic/components/Compass/package.json +1 -1
- package/dist/dynamic/components/Content/package.json +1 -1
- package/dist/dynamic/components/DataList/package.json +1 -1
- package/dist/dynamic/components/DatePicker/package.json +1 -1
- package/dist/dynamic/components/DescriptionList/package.json +1 -1
- package/dist/dynamic/components/Divider/package.json +1 -1
- package/dist/dynamic/components/Drawer/package.json +1 -1
- package/dist/dynamic/components/Dropdown/package.json +1 -1
- package/dist/dynamic/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/components/EmptyState/package.json +1 -1
- package/dist/dynamic/components/ExpandableSection/package.json +1 -1
- package/dist/dynamic/components/FileUpload/package.json +1 -1
- package/dist/dynamic/components/Form/package.json +1 -1
- package/dist/dynamic/components/FormSelect/package.json +1 -1
- package/dist/dynamic/components/HelperText/package.json +1 -1
- package/dist/dynamic/components/Hero/package.json +1 -1
- package/dist/dynamic/components/Hint/package.json +1 -1
- package/dist/dynamic/components/Icon/package.json +1 -1
- package/dist/dynamic/components/InputGroup/package.json +1 -1
- package/dist/dynamic/components/JumpLinks/package.json +1 -1
- package/dist/dynamic/components/Label/package.json +1 -1
- package/dist/dynamic/components/List/package.json +1 -1
- package/dist/dynamic/components/LoginPage/package.json +1 -1
- package/dist/dynamic/components/Masthead/package.json +1 -1
- package/dist/dynamic/components/Menu/package.json +1 -1
- package/dist/dynamic/components/MenuToggle/package.json +1 -1
- package/dist/dynamic/components/Modal/package.json +1 -1
- package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
- package/dist/dynamic/components/Nav/package.json +1 -1
- package/dist/dynamic/components/NotificationBadge/package.json +1 -1
- package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
- package/dist/dynamic/components/NumberInput/package.json +1 -1
- package/dist/dynamic/components/OverflowMenu/package.json +1 -1
- package/dist/dynamic/components/Page/package.json +1 -1
- package/dist/dynamic/components/Pagination/package.json +1 -1
- package/dist/dynamic/components/Panel/package.json +1 -1
- package/dist/dynamic/components/Popover/package.json +1 -1
- package/dist/dynamic/components/Progress/package.json +1 -1
- package/dist/dynamic/components/ProgressStepper/package.json +1 -1
- package/dist/dynamic/components/Radio/package.json +1 -1
- package/dist/dynamic/components/SearchInput/package.json +1 -1
- package/dist/dynamic/components/Select/package.json +1 -1
- package/dist/dynamic/components/Sidebar/package.json +1 -1
- package/dist/dynamic/components/SimpleList/package.json +1 -1
- package/dist/dynamic/components/Skeleton/package.json +1 -1
- package/dist/dynamic/components/SkipToContent/package.json +1 -1
- package/dist/dynamic/components/Slider/package.json +1 -1
- package/dist/dynamic/components/Spinner/package.json +1 -1
- package/dist/dynamic/components/Switch/package.json +1 -1
- package/dist/dynamic/components/Tabs/package.json +1 -1
- package/dist/dynamic/components/TextArea/package.json +1 -1
- package/dist/dynamic/components/TextInput/package.json +1 -1
- package/dist/dynamic/components/TextInputGroup/package.json +1 -1
- package/dist/dynamic/components/TimePicker/package.json +1 -1
- package/dist/dynamic/components/Timestamp/package.json +1 -1
- package/dist/dynamic/components/Title/package.json +1 -1
- package/dist/dynamic/components/ToggleGroup/package.json +1 -1
- package/dist/dynamic/components/Toolbar/package.json +1 -1
- package/dist/dynamic/components/Tooltip/package.json +1 -1
- package/dist/dynamic/components/TreeView/package.json +1 -1
- package/dist/dynamic/components/Truncate/package.json +1 -1
- package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
- package/dist/dynamic/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
- package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
- package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
- package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
- package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/package.json +1 -1
- package/dist/dynamic/helpers/AnimationsProvider/AnimationsProvider/package.json +1 -1
- package/dist/dynamic/helpers/AnimationsProvider/package.json +1 -1
- package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
- package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
- package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
- package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
- package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
- package/dist/dynamic/helpers/SSRSafeIds/SSRSafeIds/package.json +1 -1
- package/dist/dynamic/helpers/constants/package.json +1 -1
- package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
- package/dist/dynamic/helpers/fileUtils/package.json +1 -1
- package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
- package/dist/dynamic/helpers/inert/package.json +1 -1
- package/dist/dynamic/helpers/package.json +1 -1
- package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
- package/dist/dynamic/helpers/typeUtils/package.json +1 -1
- package/dist/dynamic/helpers/useInterval/package.json +1 -1
- package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
- package/dist/dynamic/helpers/useSSRSafeId/package.json +1 -1
- package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
- package/dist/dynamic/helpers/util/package.json +1 -1
- package/dist/dynamic/layouts/Bullseye/package.json +1 -1
- package/dist/dynamic/layouts/Flex/package.json +1 -1
- package/dist/dynamic/layouts/Gallery/package.json +1 -1
- package/dist/dynamic/layouts/Grid/package.json +1 -1
- package/dist/dynamic/layouts/Level/package.json +1 -1
- package/dist/dynamic/layouts/Split/package.json +1 -1
- package/dist/dynamic/layouts/Stack/package.json +1 -1
- package/dist/dynamic/styles/package.json +1 -1
- package/dist/esm/components/Drawer/Drawer.d.ts +3 -0
- package/dist/esm/components/Drawer/Drawer.d.ts.map +1 -1
- package/dist/esm/components/Drawer/Drawer.js +4 -3
- package/dist/esm/components/Drawer/Drawer.js.map +1 -1
- package/dist/esm/components/Drawer/DrawerContent.d.ts +1 -1
- package/dist/esm/components/Drawer/DrawerContent.d.ts.map +1 -1
- package/dist/esm/components/Drawer/DrawerPanelContent.js +22 -25
- package/dist/esm/components/Drawer/DrawerPanelContent.js.map +1 -1
- package/dist/js/components/Drawer/Drawer.d.ts +3 -0
- package/dist/js/components/Drawer/Drawer.d.ts.map +1 -1
- package/dist/js/components/Drawer/Drawer.js +4 -3
- package/dist/js/components/Drawer/Drawer.js.map +1 -1
- package/dist/js/components/Drawer/DrawerContent.d.ts +1 -1
- package/dist/js/components/Drawer/DrawerContent.d.ts.map +1 -1
- package/dist/js/components/Drawer/DrawerPanelContent.js +22 -25
- package/dist/js/components/Drawer/DrawerPanelContent.js.map +1 -1
- package/dist/umd/assets/{output-DfsTC8Iz.css → output-B35Oc6dG.css} +20268 -20257
- package/dist/umd/react-core.min.js +1 -1
- package/helpers/package.json +1 -1
- package/layouts/package.json +1 -1
- package/next/package.json +1 -1
- package/package.json +6 -6
- package/src/components/Drawer/Drawer.tsx +10 -2
- package/src/components/Drawer/DrawerContent.tsx +1 -1
- package/src/components/Drawer/DrawerPanelContent.tsx +25 -25
- package/src/components/Drawer/__tests__/Drawer.test.tsx +53 -0
- package/src/components/Drawer/examples/Drawer.md +1 -1
- package/src/components/Page/examples/Page.md +24 -12
- package/src/components/Page/examples/PageCustomFooter.tsx +59 -0
- package/src/components/Page/examples/PageCustomHeader.tsx +17 -0
- package/src/components/Page/examples/PagePlain.tsx +9 -0
- package/src/demos/CardView/CardView.md +1 -1
- package/src/demos/CardView/examples/CardView.tsx +1 -1
- package/src/demos/Drawer/Drawer.md +16 -0
- package/src/demos/Drawer/examples/DrawerViewport.tsx +112 -0
- package/src/demos/Page.md +24 -11
- package/src/demos/examples/Page/PagePlain.tsx +342 -0
- package/src/components/Page/examples/PageHeaderAndFooterContent.tsx +0 -20
- package/src/demos/examples/Page/PageStickySectionGroupUsingPageHeader.tsx +0 -0
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
Bullseye,
|
|
4
|
+
Button,
|
|
5
|
+
ButtonVariant,
|
|
6
|
+
Card,
|
|
7
|
+
CardBody,
|
|
8
|
+
CardExpandableContent,
|
|
9
|
+
CardFooter,
|
|
10
|
+
CardHeader,
|
|
11
|
+
CardTitle,
|
|
12
|
+
Content,
|
|
13
|
+
Divider,
|
|
14
|
+
Dropdown,
|
|
15
|
+
DropdownItem,
|
|
16
|
+
DropdownList,
|
|
17
|
+
EmptyState,
|
|
18
|
+
EmptyStateActions,
|
|
19
|
+
EmptyStateFooter,
|
|
20
|
+
EmptyStateVariant,
|
|
21
|
+
Flex,
|
|
22
|
+
FlexItem,
|
|
23
|
+
Gallery,
|
|
24
|
+
GalleryItem,
|
|
25
|
+
Icon,
|
|
26
|
+
Label,
|
|
27
|
+
LabelColor,
|
|
28
|
+
LabelGroup,
|
|
29
|
+
LabelStatus,
|
|
30
|
+
MenuToggle,
|
|
31
|
+
MenuToggleElement,
|
|
32
|
+
Page,
|
|
33
|
+
PageBody,
|
|
34
|
+
PageFooter,
|
|
35
|
+
PageHeader,
|
|
36
|
+
PageSection,
|
|
37
|
+
Panel,
|
|
38
|
+
PanelMain,
|
|
39
|
+
PanelMainBody,
|
|
40
|
+
SkipToContent,
|
|
41
|
+
Title
|
|
42
|
+
} from '@patternfly/react-core';
|
|
43
|
+
import RhUiEllipsisVerticalFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-ellipsis-vertical-fill-icon';
|
|
44
|
+
import RhUiAddCircleFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-add-circle-fill-icon';
|
|
45
|
+
import RhUiTrashFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-trash-fill-icon';
|
|
46
|
+
import RhUiPortIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-port-icon';
|
|
47
|
+
import RhUiContainerIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-container-icon';
|
|
48
|
+
import RhUiAutomationIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-automation-icon';
|
|
49
|
+
import RhUiConnectedIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-connected-icon';
|
|
50
|
+
import RhUiArrowRightIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-arrow-right-icon';
|
|
51
|
+
import pfIcon from '@patternfly/react-core/src/demos/assets/PF-IconLogo.svg';
|
|
52
|
+
import activeMQIcon from '@patternfly/react-core/src/demos/assets/activemq-core_200x150.png';
|
|
53
|
+
import avroIcon from '@patternfly/react-core/src/demos/assets/camel-avro_200x150.png';
|
|
54
|
+
import dropBoxIcon from '@patternfly/react-core/src/demos/assets/camel-dropbox_200x150.png';
|
|
55
|
+
import infinispanIcon from '@patternfly/react-core/src/demos/assets/camel-infinispan_200x150.png';
|
|
56
|
+
import saxonIcon from '@patternfly/react-core/src/demos/assets/camel-saxon_200x150.png';
|
|
57
|
+
import sparkIcon from '@patternfly/react-core/src/demos/assets/camel-spark_200x150.png';
|
|
58
|
+
import swaggerIcon from '@patternfly/react-core/src/demos/assets/camel-swagger-java_200x150.png';
|
|
59
|
+
import azureIcon from '@patternfly/react-core/src/demos/assets/FuseConnector_Icons_AzureServices.png';
|
|
60
|
+
import restIcon from '@patternfly/react-core/src/demos/assets/FuseConnector_Icons_REST.png';
|
|
61
|
+
import { data } from '@patternfly/react-core/src/demos/CardView/examples/CardViewData.jsx';
|
|
62
|
+
|
|
63
|
+
export const PagePlain: React.FunctionComponent = () => {
|
|
64
|
+
const [isPathwayExpanded, setIsPathwayExpanded] = useState(true);
|
|
65
|
+
const [isPathwayKebabOpen, setIsPathwayKebabOpen] = useState(false);
|
|
66
|
+
const [selectedItems, setSelectedItems] = useState<number[]>([]);
|
|
67
|
+
const [openCardMenu, setOpenCardMenu] = useState<number | null>(null);
|
|
68
|
+
const mainContainerId = 'main-content-page-demo-plain';
|
|
69
|
+
|
|
70
|
+
const icons = {
|
|
71
|
+
pfIcon,
|
|
72
|
+
activeMQIcon,
|
|
73
|
+
avroIcon,
|
|
74
|
+
dropBoxIcon,
|
|
75
|
+
infinispanIcon,
|
|
76
|
+
saxonIcon,
|
|
77
|
+
sparkIcon,
|
|
78
|
+
swaggerIcon,
|
|
79
|
+
azureIcon,
|
|
80
|
+
restIcon
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const cards = data.map((product) => (
|
|
84
|
+
<GalleryItem key={product.name} component="li">
|
|
85
|
+
<Card isCompact isGlass isClickable isSelectable isFullHeight id={product.name.replace(/ /g, '-')}>
|
|
86
|
+
<CardHeader
|
|
87
|
+
selectableActions={{
|
|
88
|
+
isChecked: selectedItems.includes(product.id),
|
|
89
|
+
selectableActionId: `page-demo-plain-selectable-${product.id}`,
|
|
90
|
+
selectableActionAriaLabelledby: `${product.name.replace(/ /g, '-')}-title`,
|
|
91
|
+
selectableActionProps: { isLabelWrapped: true },
|
|
92
|
+
name: `page-demo-plain-check-${product.id}`,
|
|
93
|
+
onChange: (_event, checked) => {
|
|
94
|
+
setSelectedItems((items) =>
|
|
95
|
+
checked ? [...items, product.id] : items.filter((item) => item !== product.id)
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
}}
|
|
99
|
+
actions={{
|
|
100
|
+
actions: (
|
|
101
|
+
<Dropdown
|
|
102
|
+
isOpen={openCardMenu === product.id}
|
|
103
|
+
onOpenChange={(isOpen) => setOpenCardMenu(isOpen ? product.id : null)}
|
|
104
|
+
toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
|
|
105
|
+
<MenuToggle
|
|
106
|
+
ref={toggleRef}
|
|
107
|
+
aria-label={`${product.name} actions`}
|
|
108
|
+
variant="plain"
|
|
109
|
+
onClick={() => setOpenCardMenu(openCardMenu === product.id ? null : product.id)}
|
|
110
|
+
isExpanded={openCardMenu === product.id}
|
|
111
|
+
icon={<RhUiEllipsisVerticalFillIcon />}
|
|
112
|
+
/>
|
|
113
|
+
)}
|
|
114
|
+
>
|
|
115
|
+
<DropdownList>
|
|
116
|
+
<DropdownItem onClick={() => setOpenCardMenu(null)}>
|
|
117
|
+
<RhUiTrashFillIcon /> Delete
|
|
118
|
+
</DropdownItem>
|
|
119
|
+
</DropdownList>
|
|
120
|
+
</Dropdown>
|
|
121
|
+
)
|
|
122
|
+
}}
|
|
123
|
+
>
|
|
124
|
+
<img src={icons[product.icon]} alt="" style={{ maxWidth: '60px' }} />
|
|
125
|
+
</CardHeader>
|
|
126
|
+
<CardTitle>{product.name}</CardTitle>
|
|
127
|
+
<CardBody>{product.description}</CardBody>
|
|
128
|
+
</Card>
|
|
129
|
+
</GalleryItem>
|
|
130
|
+
));
|
|
131
|
+
|
|
132
|
+
const renderPathwayCard = (
|
|
133
|
+
category: React.ReactNode,
|
|
134
|
+
systems: number,
|
|
135
|
+
description: string,
|
|
136
|
+
rebootRequired: boolean,
|
|
137
|
+
hasIncident: boolean
|
|
138
|
+
) => (
|
|
139
|
+
<FlexItem flex={{ default: 'flex_1' }} alignSelf={{ default: 'alignSelfStretch' }}>
|
|
140
|
+
<Card isPlain isFullHeight>
|
|
141
|
+
<CardBody>
|
|
142
|
+
<Flex direction={{ default: 'column' }} spaceItems={{ default: 'spaceItemsSm' }} className="pf-v6-u-h-100">
|
|
143
|
+
<Flex
|
|
144
|
+
spaceItems={{ default: 'spaceItemsSm' }}
|
|
145
|
+
direction={{ md: 'column', lg: 'row' }}
|
|
146
|
+
spacer={{ md: 'spacerMd', lg: 'spacerSm' }}
|
|
147
|
+
>
|
|
148
|
+
{category}
|
|
149
|
+
<Button variant={ButtonVariant.link} isInline component="a" href="#">
|
|
150
|
+
{systems} systems
|
|
151
|
+
</Button>
|
|
152
|
+
</Flex>
|
|
153
|
+
<FlexItem spacer={{ default: 'spacerMd' }}>
|
|
154
|
+
<p>{description}</p>
|
|
155
|
+
</FlexItem>
|
|
156
|
+
<Flex
|
|
157
|
+
grow={{ default: 'grow' }}
|
|
158
|
+
direction={{ default: 'column', lg: 'row' }}
|
|
159
|
+
justifyContent={{ default: 'justifyContentFlexEnd', lg: 'justifyContentFlexStart' }}
|
|
160
|
+
alignContent={{ lg: 'alignContentFlexEnd' }}
|
|
161
|
+
rowGap={{ default: 'rowGapMd' }}
|
|
162
|
+
>
|
|
163
|
+
{hasIncident && (
|
|
164
|
+
<FlexItem style={{ marginBlockEnd: '-.25em' }}>
|
|
165
|
+
<Label status={LabelStatus.danger}>Incident</Label>
|
|
166
|
+
</FlexItem>
|
|
167
|
+
)}
|
|
168
|
+
<Flex
|
|
169
|
+
spaceItems={{ default: 'spaceItemsSm' }}
|
|
170
|
+
alignItems={{ default: 'alignItemsCenter' }}
|
|
171
|
+
flexWrap={{ default: 'nowrap' }}
|
|
172
|
+
rowGap={{ default: 'rowGapMd' }}
|
|
173
|
+
>
|
|
174
|
+
<Icon status={rebootRequired ? 'danger' : 'success'}>
|
|
175
|
+
<RhUiConnectedIcon />
|
|
176
|
+
</Icon>
|
|
177
|
+
<p className="pf-v6-u-color-200">
|
|
178
|
+
System reboot <b className="pf-v6-u-color-100">{rebootRequired ? 'is' : 'is not'}</b> required
|
|
179
|
+
</p>
|
|
180
|
+
</Flex>
|
|
181
|
+
</Flex>
|
|
182
|
+
</Flex>
|
|
183
|
+
</CardBody>
|
|
184
|
+
<CardFooter>
|
|
185
|
+
<Button
|
|
186
|
+
variant={ButtonVariant.link}
|
|
187
|
+
isInline
|
|
188
|
+
component="a"
|
|
189
|
+
href="#"
|
|
190
|
+
icon={<RhUiArrowRightIcon />}
|
|
191
|
+
iconPosition="end"
|
|
192
|
+
>
|
|
193
|
+
View pathway
|
|
194
|
+
</Button>
|
|
195
|
+
</CardFooter>
|
|
196
|
+
</Card>
|
|
197
|
+
</FlexItem>
|
|
198
|
+
);
|
|
199
|
+
|
|
200
|
+
const recommendedPathwaysCard = (
|
|
201
|
+
<Card isExpanded={isPathwayExpanded} isGlass>
|
|
202
|
+
<CardHeader
|
|
203
|
+
onExpand={() => setIsPathwayExpanded(!isPathwayExpanded)}
|
|
204
|
+
toggleButtonProps={{
|
|
205
|
+
id: 'page-demo-plain-expandable-status-card-1-toggle',
|
|
206
|
+
'aria-label': 'Details',
|
|
207
|
+
'aria-labelledby':
|
|
208
|
+
'page-demo-plain-expandable-status-card-1-title page-demo-plain-expandable-status-card-1-toggle',
|
|
209
|
+
'aria-expanded': isPathwayExpanded
|
|
210
|
+
}}
|
|
211
|
+
actions={{
|
|
212
|
+
actions: (
|
|
213
|
+
<Dropdown
|
|
214
|
+
isOpen={isPathwayKebabOpen}
|
|
215
|
+
onOpenChange={(isOpen) => setIsPathwayKebabOpen(isOpen)}
|
|
216
|
+
toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
|
|
217
|
+
<MenuToggle
|
|
218
|
+
ref={toggleRef}
|
|
219
|
+
id="page-demo-plain-expandable-status-card-1-action-kebab"
|
|
220
|
+
aria-label="Menu toggle"
|
|
221
|
+
variant="plain"
|
|
222
|
+
onClick={() => setIsPathwayKebabOpen(!isPathwayKebabOpen)}
|
|
223
|
+
isExpanded={isPathwayKebabOpen}
|
|
224
|
+
icon={<RhUiEllipsisVerticalFillIcon />}
|
|
225
|
+
/>
|
|
226
|
+
)}
|
|
227
|
+
>
|
|
228
|
+
<DropdownList>
|
|
229
|
+
<DropdownItem onClick={() => setIsPathwayKebabOpen(false)}>Action</DropdownItem>
|
|
230
|
+
</DropdownList>
|
|
231
|
+
</Dropdown>
|
|
232
|
+
)
|
|
233
|
+
}}
|
|
234
|
+
>
|
|
235
|
+
<CardTitle id="page-demo-plain-expandable-status-card-1-title">
|
|
236
|
+
<Title headingLevel="h2" size="xl">
|
|
237
|
+
Improve recommended pathways
|
|
238
|
+
</Title>
|
|
239
|
+
</CardTitle>
|
|
240
|
+
</CardHeader>
|
|
241
|
+
<CardExpandableContent>
|
|
242
|
+
<Flex direction={{ default: 'column', md: 'row' }} alignItems={{ default: 'alignItemsStretch' }}>
|
|
243
|
+
{renderPathwayCard(
|
|
244
|
+
<LabelGroup aria-label="Group of labels">
|
|
245
|
+
<Label variant="outline" color={LabelColor.blue} icon={<RhUiPortIcon />}>
|
|
246
|
+
Performance
|
|
247
|
+
</Label>
|
|
248
|
+
</LabelGroup>,
|
|
249
|
+
378,
|
|
250
|
+
'Upgrade your kernel version to remediate ntpd time sync issues, kernel panics, network instabilities and issues with system performance',
|
|
251
|
+
true,
|
|
252
|
+
true
|
|
253
|
+
)}
|
|
254
|
+
<Divider orientation={{ md: 'vertical' }} inset={{ default: 'inset3xl' }} />
|
|
255
|
+
{renderPathwayCard(
|
|
256
|
+
<LabelGroup numLabels={1} aria-label="Group of labels">
|
|
257
|
+
<Label variant="outline" color={LabelColor.blue} icon={<RhUiContainerIcon />}>
|
|
258
|
+
Stability
|
|
259
|
+
</Label>
|
|
260
|
+
<Label variant="outline" color={LabelColor.blue}>
|
|
261
|
+
Availability
|
|
262
|
+
</Label>
|
|
263
|
+
</LabelGroup>,
|
|
264
|
+
211,
|
|
265
|
+
'Adjust your networking configuration to get ahead of network performance degradations and packet losses',
|
|
266
|
+
false,
|
|
267
|
+
false
|
|
268
|
+
)}
|
|
269
|
+
<Divider orientation={{ md: 'vertical' }} inset={{ default: 'inset3xl' }} />
|
|
270
|
+
{renderPathwayCard(
|
|
271
|
+
<LabelGroup aria-label="Group of labels">
|
|
272
|
+
<Label variant="outline" color={LabelColor.blue} icon={<RhUiAutomationIcon />}>
|
|
273
|
+
Availability
|
|
274
|
+
</Label>
|
|
275
|
+
</LabelGroup>,
|
|
276
|
+
166,
|
|
277
|
+
'Fine tune your Oracle DB configuration to improve database performance and avoid process failure',
|
|
278
|
+
true,
|
|
279
|
+
true
|
|
280
|
+
)}
|
|
281
|
+
</Flex>
|
|
282
|
+
</CardExpandableContent>
|
|
283
|
+
</Card>
|
|
284
|
+
);
|
|
285
|
+
|
|
286
|
+
const footer = (
|
|
287
|
+
<PageFooter>
|
|
288
|
+
<PageBody>custom footer</PageBody>
|
|
289
|
+
</PageFooter>
|
|
290
|
+
);
|
|
291
|
+
|
|
292
|
+
return (
|
|
293
|
+
<Page
|
|
294
|
+
id="page-demo-plain"
|
|
295
|
+
isPlain
|
|
296
|
+
masthead={<PageHeader>Custom header</PageHeader>}
|
|
297
|
+
skipToContent={<SkipToContent href={`#${mainContainerId}`}>Skip to content</SkipToContent>}
|
|
298
|
+
mainContainerId={mainContainerId}
|
|
299
|
+
footer={footer}
|
|
300
|
+
sidebar={null}
|
|
301
|
+
>
|
|
302
|
+
<PageSection isPlain padding={{ default: 'noPadding' }}>
|
|
303
|
+
<Panel isGlass variant="bordered">
|
|
304
|
+
<PanelMain>
|
|
305
|
+
<PanelMainBody>
|
|
306
|
+
<Content>
|
|
307
|
+
<h1>Page title</h1>
|
|
308
|
+
<p>This is a full page demo.</p>
|
|
309
|
+
</Content>
|
|
310
|
+
</PanelMainBody>
|
|
311
|
+
</PanelMain>
|
|
312
|
+
</Panel>
|
|
313
|
+
</PageSection>
|
|
314
|
+
<PageSection isPlain padding={{ default: 'noPadding' }}>
|
|
315
|
+
{recommendedPathwaysCard}
|
|
316
|
+
</PageSection>
|
|
317
|
+
<PageSection isPlain padding={{ default: 'noPadding' }} isFilled>
|
|
318
|
+
<Gallery component="ul" hasGutter aria-label="Selectable card container">
|
|
319
|
+
<GalleryItem component="li">
|
|
320
|
+
<Card isCompact isGlass isFullHeight>
|
|
321
|
+
<Bullseye>
|
|
322
|
+
<EmptyState
|
|
323
|
+
headingLevel="h2"
|
|
324
|
+
titleText="Add a new card to your page"
|
|
325
|
+
icon={RhUiAddCircleFillIcon}
|
|
326
|
+
variant={EmptyStateVariant.xs}
|
|
327
|
+
>
|
|
328
|
+
<EmptyStateFooter>
|
|
329
|
+
<EmptyStateActions>
|
|
330
|
+
<Button variant={ButtonVariant.link}>Add card</Button>
|
|
331
|
+
</EmptyStateActions>
|
|
332
|
+
</EmptyStateFooter>
|
|
333
|
+
</EmptyState>
|
|
334
|
+
</Bullseye>
|
|
335
|
+
</Card>
|
|
336
|
+
</GalleryItem>
|
|
337
|
+
{cards}
|
|
338
|
+
</Gallery>
|
|
339
|
+
</PageSection>
|
|
340
|
+
</Page>
|
|
341
|
+
);
|
|
342
|
+
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Page, PageHeader, PageFooter, PageSection } from '@patternfly/react-core';
|
|
2
|
-
|
|
3
|
-
export const PageHeaderAndFooterContent: React.FunctionComponent = () => {
|
|
4
|
-
const pageHeader = <PageHeader>Page header</PageHeader>;
|
|
5
|
-
const pageFooter = <PageFooter>Page footer</PageFooter>;
|
|
6
|
-
|
|
7
|
-
return (
|
|
8
|
-
<Page isPlain masthead={pageHeader} footer={pageFooter}>
|
|
9
|
-
<PageSection aria-labelledby="header-example-section-1">
|
|
10
|
-
<h2 id="header-example-section-1">Page header example section 1</h2>
|
|
11
|
-
</PageSection>
|
|
12
|
-
<PageSection variant="secondary" aria-labelledby="header-example-section-2">
|
|
13
|
-
<h2 id="header-example-section-2">Page header example section 2 with secondary variant styling</h2>
|
|
14
|
-
</PageSection>
|
|
15
|
-
<PageSection aria-labelledby="header-example-section-3">
|
|
16
|
-
<h2 id="header-example-section-3">Page header example section 3</h2>
|
|
17
|
-
</PageSection>
|
|
18
|
-
</Page>
|
|
19
|
-
);
|
|
20
|
-
};
|
|
File without changes
|