@patternfly/react-core 6.5.0-prerelease.49 → 6.5.0-prerelease.50
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/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/Page/Page.d.ts.map +1 -1
- package/dist/esm/components/Page/Page.js +1 -1
- package/dist/esm/components/Page/Page.js.map +1 -1
- package/dist/esm/components/Page/PageGroup.d.ts +5 -1
- package/dist/esm/components/Page/PageGroup.d.ts.map +1 -1
- package/dist/esm/components/Page/PageGroup.js +2 -2
- package/dist/esm/components/Page/PageGroup.js.map +1 -1
- package/dist/esm/components/Page/PageSection.d.ts +4 -0
- package/dist/esm/components/Page/PageSection.d.ts.map +1 -1
- package/dist/esm/components/Page/PageSection.js +2 -2
- package/dist/esm/components/Page/PageSection.js.map +1 -1
- package/dist/esm/components/Page/PageSidebar.d.ts.map +1 -1
- package/dist/esm/components/Page/PageSidebar.js +1 -1
- package/dist/esm/components/Page/PageSidebar.js.map +1 -1
- package/dist/js/components/Page/Page.d.ts.map +1 -1
- package/dist/js/components/Page/Page.js +1 -1
- package/dist/js/components/Page/Page.js.map +1 -1
- package/dist/js/components/Page/PageGroup.d.ts +5 -1
- package/dist/js/components/Page/PageGroup.d.ts.map +1 -1
- package/dist/js/components/Page/PageGroup.js +2 -2
- package/dist/js/components/Page/PageGroup.js.map +1 -1
- package/dist/js/components/Page/PageSection.d.ts +4 -0
- package/dist/js/components/Page/PageSection.d.ts.map +1 -1
- package/dist/js/components/Page/PageSection.js +2 -2
- package/dist/js/components/Page/PageSection.js.map +1 -1
- package/dist/js/components/Page/PageSidebar.d.ts.map +1 -1
- package/dist/js/components/Page/PageSidebar.js +1 -1
- package/dist/js/components/Page/PageSidebar.js.map +1 -1
- package/dist/styles/base-no-reset.css +6 -0
- package/dist/styles/base.css +6 -0
- package/dist/umd/assets/{output-BDpVgdr7.css → output-iMhx1BC1.css} +19683 -19616
- 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/Page/Page.tsx +7 -1
- package/src/components/Page/PageGroup.tsx +8 -0
- package/src/components/Page/PageSection.tsx +8 -0
- package/src/components/Page/PageSidebar.tsx +3 -1
- package/src/components/Page/__tests__/Generated/__snapshots__/PageSidebar.test.tsx.snap +6 -2
- package/src/components/Page/__tests__/Page.test.tsx +7 -0
- package/src/components/Page/__tests__/PageGroup.test.tsx +98 -88
- package/src/components/Page/__tests__/PageSection.test.tsx +20 -0
- package/src/components/Page/__tests__/PageSidebar.test.tsx +9 -0
- package/src/components/Page/__tests__/__snapshots__/Page.test.tsx.snap +62 -14
- package/src/components/Page/__tests__/__snapshots__/PageGroup.test.tsx.snap +6 -6
- package/src/components/Page/examples/Page.md +9 -1
- package/src/components/Page/examples/PagePlainSections.tsx +93 -0
package/helpers/package.json
CHANGED
|
@@ -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.5.0-prerelease.
|
|
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.5.0-prerelease.49","private":true}
|
package/layouts/package.json
CHANGED
|
@@ -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.5.0-prerelease.
|
|
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.5.0-prerelease.49","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.5.0-prerelease.
|
|
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.5.0-prerelease.49","private":true}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "6.5.0-prerelease.
|
|
3
|
+
"version": "6.5.0-prerelease.50",
|
|
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",
|
|
@@ -46,15 +46,15 @@
|
|
|
46
46
|
"subpaths": "node ../../scripts/exportSubpaths.mjs --config subpaths.config.json"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@patternfly/react-icons": "^6.5.0-prerelease.
|
|
50
|
-
"@patternfly/react-styles": "^6.5.0-prerelease.
|
|
51
|
-
"@patternfly/react-tokens": "^6.5.0-prerelease.
|
|
49
|
+
"@patternfly/react-icons": "^6.5.0-prerelease.21",
|
|
50
|
+
"@patternfly/react-styles": "^6.5.0-prerelease.16",
|
|
51
|
+
"@patternfly/react-tokens": "^6.5.0-prerelease.15",
|
|
52
52
|
"focus-trap": "7.6.6",
|
|
53
53
|
"react-dropzone": "^14.3.5",
|
|
54
54
|
"tslib": "^2.8.1"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@patternfly/patternfly": "6.5.0-prerelease.
|
|
57
|
+
"@patternfly/patternfly": "6.5.0-prerelease.65",
|
|
58
58
|
"case-anything": "^3.1.2",
|
|
59
59
|
"css": "^3.0.0",
|
|
60
60
|
"fs-extra": "^11.3.3"
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"react": "^17 || ^18 || ^19",
|
|
64
64
|
"react-dom": "^17 || ^18 || ^19"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "911223aa1a6b9309d90d31245bc29f3e1a9c675c"
|
|
67
67
|
}
|
|
@@ -348,7 +348,13 @@ class Page extends Component<PageProps, PageState> {
|
|
|
348
348
|
)}
|
|
349
349
|
>
|
|
350
350
|
{skipToContent}
|
|
351
|
-
{variant === 'docked' ?
|
|
351
|
+
{variant === 'docked' ? (
|
|
352
|
+
<div className={css(styles.pageDock)}>
|
|
353
|
+
<div className={css(styles.pageDockMain)}>{masthead}</div>
|
|
354
|
+
</div>
|
|
355
|
+
) : (
|
|
356
|
+
masthead
|
|
357
|
+
)}
|
|
352
358
|
{sidebar}
|
|
353
359
|
{notificationDrawer && (
|
|
354
360
|
<div className={css(styles.pageDrawer)}>
|
|
@@ -27,6 +27,10 @@ export interface PageGroupProps extends React.HTMLProps<HTMLDivElement> {
|
|
|
27
27
|
hasOverflowScroll?: boolean;
|
|
28
28
|
/** Adds an accessible name to the page group when the hasOverflowScroll prop is set to true. */
|
|
29
29
|
'aria-label'?: string;
|
|
30
|
+
/** Adds plain styling to the page group. */
|
|
31
|
+
isPlain?: boolean;
|
|
32
|
+
/** @beta Prevents the page group from automatically applying plain styling when glass theme is enabled. */
|
|
33
|
+
isNoPlainOnGlass?: boolean;
|
|
30
34
|
}
|
|
31
35
|
|
|
32
36
|
export const PageGroup = ({
|
|
@@ -38,6 +42,8 @@ export const PageGroup = ({
|
|
|
38
42
|
hasShadowBottom = false,
|
|
39
43
|
hasOverflowScroll = false,
|
|
40
44
|
'aria-label': ariaLabel,
|
|
45
|
+
isPlain = false,
|
|
46
|
+
isNoPlainOnGlass = false,
|
|
41
47
|
...props
|
|
42
48
|
}: PageGroupProps) => {
|
|
43
49
|
const { height, getVerticalBreakpoint } = useContext(PageContext);
|
|
@@ -60,6 +66,8 @@ export const PageGroup = ({
|
|
|
60
66
|
hasShadowTop && styles.modifiers.shadowTop,
|
|
61
67
|
hasShadowBottom && styles.modifiers.shadowBottom,
|
|
62
68
|
hasOverflowScroll && styles.modifiers.overflowScroll,
|
|
69
|
+
isPlain && styles.modifiers.plain,
|
|
70
|
+
isNoPlainOnGlass && styles.modifiers.noPlainOnGlass,
|
|
63
71
|
className
|
|
64
72
|
)}
|
|
65
73
|
{...(hasOverflowScroll && { tabIndex: 0, role: 'region', 'aria-label': ariaLabel })}
|
|
@@ -67,6 +67,10 @@ export interface PageSectionProps extends React.HTMLProps<HTMLDivElement> {
|
|
|
67
67
|
'aria-label'?: string;
|
|
68
68
|
/** Sets the base component to render. Defaults to section */
|
|
69
69
|
component?: keyof React.JSX.IntrinsicElements;
|
|
70
|
+
/** Adds plain styling to the page section. */
|
|
71
|
+
isPlain?: boolean;
|
|
72
|
+
/** @beta Prevents the page section from automatically applying plain styling when glass theme is enabled. */
|
|
73
|
+
isNoPlainOnGlass?: boolean;
|
|
70
74
|
}
|
|
71
75
|
|
|
72
76
|
const variantType = {
|
|
@@ -98,6 +102,8 @@ export const PageSection: React.FunctionComponent<PageSectionProps> = ({
|
|
|
98
102
|
'aria-label': ariaLabel,
|
|
99
103
|
component = 'section',
|
|
100
104
|
hasBodyWrapper = true,
|
|
105
|
+
isPlain = false,
|
|
106
|
+
isNoPlainOnGlass = false,
|
|
101
107
|
...props
|
|
102
108
|
}: PageSectionProps) => {
|
|
103
109
|
const { height, getVerticalBreakpoint } = useContext(PageContext);
|
|
@@ -126,6 +132,8 @@ export const PageSection: React.FunctionComponent<PageSectionProps> = ({
|
|
|
126
132
|
hasShadowTop && styles.modifiers.shadowTop,
|
|
127
133
|
hasShadowBottom && styles.modifiers.shadowBottom,
|
|
128
134
|
hasOverflowScroll && styles.modifiers.overflowScroll,
|
|
135
|
+
isPlain && styles.modifiers.plain,
|
|
136
|
+
isNoPlainOnGlass && styles.modifiers.noPlainOnGlass,
|
|
129
137
|
className
|
|
130
138
|
)}
|
|
131
139
|
{...(hasOverflowScroll && { tabIndex: 0 })}
|
|
@@ -50,7 +50,9 @@ export const PageSidebar: React.FunctionComponent<PageSidebarProps> = ({
|
|
|
50
50
|
aria-hidden={!sidebarOpen}
|
|
51
51
|
{...props}
|
|
52
52
|
>
|
|
53
|
-
<PageSidebarContext.Provider value={{ isSidebarOpen: sidebarOpen }}>
|
|
53
|
+
<PageSidebarContext.Provider value={{ isSidebarOpen: sidebarOpen }}>
|
|
54
|
+
<div className={css(styles.pageSidebarMain)}>{children}</div>
|
|
55
|
+
</PageSidebarContext.Provider>
|
|
54
56
|
</div>
|
|
55
57
|
);
|
|
56
58
|
}}
|
|
@@ -7,8 +7,12 @@ exports[`PageSidebar should match snapshot (auto-generated) 1`] = `
|
|
|
7
7
|
class="pf-v6-c-page__sidebar ''"
|
|
8
8
|
id="page-sidebar"
|
|
9
9
|
>
|
|
10
|
-
<div
|
|
11
|
-
|
|
10
|
+
<div
|
|
11
|
+
class="pf-v6-c-page__sidebar-main"
|
|
12
|
+
>
|
|
13
|
+
<div>
|
|
14
|
+
ReactNode
|
|
15
|
+
</div>
|
|
12
16
|
</div>
|
|
13
17
|
</div>
|
|
14
18
|
</DocumentFragment>
|
|
@@ -406,4 +406,11 @@ describe('Page', () => {
|
|
|
406
406
|
render(<Page data-testid="page"></Page>);
|
|
407
407
|
expect(screen.getByTestId('page')).not.toHaveClass(styles.modifiers.dock);
|
|
408
408
|
});
|
|
409
|
+
|
|
410
|
+
test(`Renders with ${styles.pageDockMain} wrapper when variant is docked`, () => {
|
|
411
|
+
render(<Page variant="docked" masthead={<>Masthead</>} data-testid="page"></Page>);
|
|
412
|
+
|
|
413
|
+
const pageDockMain = screen.getByText('Masthead').closest(`.${styles.pageDockMain}`);
|
|
414
|
+
expect(pageDockMain).toBeInTheDocument();
|
|
415
|
+
});
|
|
409
416
|
});
|
|
@@ -2,92 +2,102 @@ import { render, screen } from '@testing-library/react';
|
|
|
2
2
|
import { PageGroup } from '../PageGroup';
|
|
3
3
|
import styles from '@patternfly/react-styles/css/components/Page/page';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
test
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
5
|
+
test('Verify basic render', () => {
|
|
6
|
+
const { asFragment } = render(<PageGroup>test</PageGroup>);
|
|
7
|
+
expect(asFragment()).toMatchSnapshot();
|
|
8
|
+
});
|
|
9
|
+
test('Verify top sticky', () => {
|
|
10
|
+
const { asFragment } = render(<PageGroup stickyOnBreakpoint={{ default: 'top' }}>test</PageGroup>);
|
|
11
|
+
expect(asFragment()).toMatchSnapshot();
|
|
12
|
+
});
|
|
13
|
+
test('Verify bottom sticky', () => {
|
|
14
|
+
const { asFragment } = render(<PageGroup stickyOnBreakpoint={{ default: 'bottom' }}>test</PageGroup>);
|
|
15
|
+
expect(asFragment()).toMatchSnapshot();
|
|
16
|
+
});
|
|
17
|
+
test('Verify top shadow', () => {
|
|
18
|
+
const { asFragment } = render(<PageGroup hasShadowTop>test</PageGroup>);
|
|
19
|
+
expect(asFragment()).toMatchSnapshot();
|
|
20
|
+
});
|
|
21
|
+
test('Verify bottom shadow', () => {
|
|
22
|
+
const { asFragment } = render(<PageGroup hasShadowBottom>test</PageGroup>);
|
|
23
|
+
expect(asFragment()).toMatchSnapshot();
|
|
24
|
+
});
|
|
25
|
+
test('Verify overflow scroll', () => {
|
|
26
|
+
const { asFragment } = render(<PageGroup hasOverflowScroll>test</PageGroup>);
|
|
27
|
+
expect(asFragment()).toMatchSnapshot();
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test('Renders without an aria-label by default', () => {
|
|
31
|
+
render(<PageGroup>test</PageGroup>);
|
|
32
|
+
|
|
33
|
+
expect(screen.getByText('test')).not.toHaveAccessibleName('Test label');
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test('Renders with the passed aria-label applied', () => {
|
|
37
|
+
render(
|
|
38
|
+
<PageGroup aria-label="Test label" hasOverflowScroll>
|
|
39
|
+
test
|
|
40
|
+
</PageGroup>
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
expect(screen.getByText('test')).toHaveAccessibleName('Test label');
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test('Does not log a warning in the console by default', () => {
|
|
47
|
+
const consoleWarning = jest.spyOn(console, 'warn').mockImplementation();
|
|
48
|
+
|
|
49
|
+
render(<PageGroup>test</PageGroup>);
|
|
50
|
+
|
|
51
|
+
expect(consoleWarning).not.toHaveBeenCalled();
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
test('Does not log a warning in the console when an aria-label is included with hasOverflowScroll', () => {
|
|
55
|
+
const consoleWarning = jest.spyOn(console, 'warn').mockImplementation();
|
|
56
|
+
|
|
57
|
+
render(
|
|
58
|
+
<PageGroup hasOverflowScroll aria-label="Test label">
|
|
59
|
+
test
|
|
60
|
+
</PageGroup>
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
expect(consoleWarning).not.toHaveBeenCalled();
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
test('Logs a warning in the console when an aria-label is not included with hasOverflowScroll', () => {
|
|
67
|
+
const consoleWarning = jest.spyOn(console, 'warn').mockImplementation();
|
|
68
|
+
|
|
69
|
+
render(<PageGroup hasOverflowScroll>test</PageGroup>);
|
|
70
|
+
|
|
71
|
+
expect(consoleWarning).toHaveBeenCalled();
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
test(`Does not render with ${styles.modifiers.fill} or ${styles.modifiers.noFill} if isFilled is not passed`, () => {
|
|
75
|
+
render(<PageGroup>test</PageGroup>);
|
|
76
|
+
|
|
77
|
+
expect(screen.getByText('test')).not.toHaveClass(styles.modifiers.fill);
|
|
78
|
+
expect(screen.getByText('test')).not.toHaveClass(styles.modifiers.noFill);
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
test(`Renders with ${styles.modifiers.fill} if isFilled={true} is passed`, () => {
|
|
82
|
+
render(<PageGroup isFilled={true}>test</PageGroup>);
|
|
83
|
+
|
|
84
|
+
expect(screen.getByText('test')).toHaveClass(styles.modifiers.fill);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
test(`Renders with ${styles.modifiers.noFill} if isFilled={false} is passed`, () => {
|
|
88
|
+
render(<PageGroup isFilled={false}>test</PageGroup>);
|
|
89
|
+
|
|
90
|
+
expect(screen.getByText('test')).toHaveClass(styles.modifiers.noFill);
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
test(`Renders with ${styles.modifiers.plain} class when isPlain is true`, () => {
|
|
94
|
+
render(<PageGroup isPlain>test</PageGroup>);
|
|
95
|
+
|
|
96
|
+
expect(screen.getByText('test')).toHaveClass(styles.modifiers.plain);
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
test(`Renders with ${styles.modifiers.noPlainOnGlass} class when isNoPlainOnGlass is true`, () => {
|
|
100
|
+
render(<PageGroup isNoPlainOnGlass>test</PageGroup>);
|
|
101
|
+
|
|
102
|
+
expect(screen.getByText('test')).toHaveClass(styles.modifiers.noPlainOnGlass);
|
|
93
103
|
});
|
|
@@ -179,3 +179,23 @@ test(`Renders with ${styles.modifiers.noFill} if isFilled={false} is passed`, ()
|
|
|
179
179
|
|
|
180
180
|
expect(screen.getByRole('main')).toHaveClass(styles.modifiers.noFill);
|
|
181
181
|
});
|
|
182
|
+
|
|
183
|
+
test(`Renders with ${styles.modifiers.plain} class when isPlain is true`, () => {
|
|
184
|
+
render(
|
|
185
|
+
<PageSection hasBodyWrapper={false} isPlain>
|
|
186
|
+
test
|
|
187
|
+
</PageSection>
|
|
188
|
+
);
|
|
189
|
+
|
|
190
|
+
expect(screen.getByText('test')).toHaveClass(styles.modifiers.plain);
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
test(`Renders with ${styles.modifiers.noPlainOnGlass} class when isNoPlainOnGlass is true`, () => {
|
|
194
|
+
render(
|
|
195
|
+
<PageSection hasBodyWrapper={false} isNoPlainOnGlass>
|
|
196
|
+
test
|
|
197
|
+
</PageSection>
|
|
198
|
+
);
|
|
199
|
+
|
|
200
|
+
expect(screen.getByText('test')).toHaveClass(styles.modifiers.noPlainOnGlass);
|
|
201
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { render, screen } from '@testing-library/react';
|
|
2
|
+
import { PageSidebar } from '../PageSidebar';
|
|
3
|
+
import styles from '@patternfly/react-styles/css/components/Page/page';
|
|
4
|
+
|
|
5
|
+
test(`Renders with ${styles.pageSidebarMain} wrapper`, () => {
|
|
6
|
+
render(<PageSidebar data-testid="sidebar">Test</PageSidebar>);
|
|
7
|
+
|
|
8
|
+
expect(screen.getByText('Test')).toHaveClass(styles.pageSidebarMain);
|
|
9
|
+
});
|
|
@@ -16,9 +16,13 @@ exports[`Page Check dark page against snapshot 1`] = `
|
|
|
16
16
|
id="page-sidebar"
|
|
17
17
|
>
|
|
18
18
|
<div
|
|
19
|
-
class="pf-v6-c-page__sidebar-
|
|
19
|
+
class="pf-v6-c-page__sidebar-main"
|
|
20
20
|
>
|
|
21
|
-
|
|
21
|
+
<div
|
|
22
|
+
class="pf-v6-c-page__sidebar-body"
|
|
23
|
+
>
|
|
24
|
+
Navigation
|
|
25
|
+
</div>
|
|
22
26
|
</div>
|
|
23
27
|
</div>
|
|
24
28
|
<div
|
|
@@ -57,7 +61,11 @@ exports[`Page Check page horizontal layout example against snapshot 1`] = `
|
|
|
57
61
|
aria-hidden="false"
|
|
58
62
|
class="pf-v6-c-page__sidebar"
|
|
59
63
|
id="page-sidebar"
|
|
60
|
-
|
|
64
|
+
>
|
|
65
|
+
<div
|
|
66
|
+
class="pf-v6-c-page__sidebar-main"
|
|
67
|
+
/>
|
|
68
|
+
</div>
|
|
61
69
|
<div
|
|
62
70
|
class="pf-v6-c-page__main-container"
|
|
63
71
|
>
|
|
@@ -94,7 +102,11 @@ exports[`Page Check page to verify breadcrumb is created - PageBreadcrumb syntax
|
|
|
94
102
|
aria-hidden="false"
|
|
95
103
|
class="pf-v6-c-page__sidebar"
|
|
96
104
|
id="page-sidebar"
|
|
97
|
-
|
|
105
|
+
>
|
|
106
|
+
<div
|
|
107
|
+
class="pf-v6-c-page__sidebar-main"
|
|
108
|
+
/>
|
|
109
|
+
</div>
|
|
98
110
|
<div
|
|
99
111
|
class="pf-v6-c-page__main-container"
|
|
100
112
|
>
|
|
@@ -239,7 +251,11 @@ exports[`Page Check page to verify breadcrumb is created 1`] = `
|
|
|
239
251
|
aria-hidden="false"
|
|
240
252
|
class="pf-v6-c-page__sidebar"
|
|
241
253
|
id="page-sidebar"
|
|
242
|
-
|
|
254
|
+
>
|
|
255
|
+
<div
|
|
256
|
+
class="pf-v6-c-page__sidebar-main"
|
|
257
|
+
/>
|
|
258
|
+
</div>
|
|
243
259
|
<div
|
|
244
260
|
class="pf-v6-c-page__main-container"
|
|
245
261
|
>
|
|
@@ -388,7 +404,11 @@ exports[`Page Check page to verify grouped nav and breadcrumb - new components s
|
|
|
388
404
|
aria-hidden="false"
|
|
389
405
|
class="pf-v6-c-page__sidebar"
|
|
390
406
|
id="page-sidebar"
|
|
391
|
-
|
|
407
|
+
>
|
|
408
|
+
<div
|
|
409
|
+
class="pf-v6-c-page__sidebar-main"
|
|
410
|
+
/>
|
|
411
|
+
</div>
|
|
392
412
|
<div
|
|
393
413
|
class="pf-v6-c-page__main-container"
|
|
394
414
|
>
|
|
@@ -631,7 +651,11 @@ exports[`Page Check page to verify grouped nav and breadcrumb - old / props synt
|
|
|
631
651
|
aria-hidden="false"
|
|
632
652
|
class="pf-v6-c-page__sidebar"
|
|
633
653
|
id="page-sidebar"
|
|
634
|
-
|
|
654
|
+
>
|
|
655
|
+
<div
|
|
656
|
+
class="pf-v6-c-page__sidebar-main"
|
|
657
|
+
/>
|
|
658
|
+
</div>
|
|
635
659
|
<div
|
|
636
660
|
class="pf-v6-c-page__main-container"
|
|
637
661
|
>
|
|
@@ -915,7 +939,11 @@ exports[`Page Check page to verify skip to content points to main content region
|
|
|
915
939
|
aria-hidden="false"
|
|
916
940
|
class="pf-v6-c-page__sidebar"
|
|
917
941
|
id="page-sidebar"
|
|
918
|
-
|
|
942
|
+
>
|
|
943
|
+
<div
|
|
944
|
+
class="pf-v6-c-page__sidebar-main"
|
|
945
|
+
/>
|
|
946
|
+
</div>
|
|
919
947
|
<div
|
|
920
948
|
class="pf-v6-c-page__main-container"
|
|
921
949
|
>
|
|
@@ -1067,9 +1095,13 @@ exports[`Page Check page vertical layout example against snapshot 1`] = `
|
|
|
1067
1095
|
id="page-sidebar"
|
|
1068
1096
|
>
|
|
1069
1097
|
<div
|
|
1070
|
-
class="pf-v6-c-page__sidebar-
|
|
1098
|
+
class="pf-v6-c-page__sidebar-main"
|
|
1071
1099
|
>
|
|
1072
|
-
|
|
1100
|
+
<div
|
|
1101
|
+
class="pf-v6-c-page__sidebar-body"
|
|
1102
|
+
>
|
|
1103
|
+
Navigation
|
|
1104
|
+
</div>
|
|
1073
1105
|
</div>
|
|
1074
1106
|
</div>
|
|
1075
1107
|
<div
|
|
@@ -1108,7 +1140,11 @@ exports[`Page Sticky bottom breadcrumb on all height breakpoints - PageBreadcrum
|
|
|
1108
1140
|
aria-hidden="false"
|
|
1109
1141
|
class="pf-v6-c-page__sidebar"
|
|
1110
1142
|
id="page-sidebar"
|
|
1111
|
-
|
|
1143
|
+
>
|
|
1144
|
+
<div
|
|
1145
|
+
class="pf-v6-c-page__sidebar-main"
|
|
1146
|
+
/>
|
|
1147
|
+
</div>
|
|
1112
1148
|
<div
|
|
1113
1149
|
class="pf-v6-c-page__main-container"
|
|
1114
1150
|
>
|
|
@@ -1253,7 +1289,11 @@ exports[`Page Verify sticky bottom breadcrumb on all height breakpoints 1`] = `
|
|
|
1253
1289
|
aria-hidden="false"
|
|
1254
1290
|
class="pf-v6-c-page__sidebar"
|
|
1255
1291
|
id="page-sidebar"
|
|
1256
|
-
|
|
1292
|
+
>
|
|
1293
|
+
<div
|
|
1294
|
+
class="pf-v6-c-page__sidebar-main"
|
|
1295
|
+
/>
|
|
1296
|
+
</div>
|
|
1257
1297
|
<div
|
|
1258
1298
|
class="pf-v6-c-page__main-container"
|
|
1259
1299
|
>
|
|
@@ -1402,7 +1442,11 @@ exports[`Page Verify sticky top breadcrumb on all height breakpoints - PageBread
|
|
|
1402
1442
|
aria-hidden="false"
|
|
1403
1443
|
class="pf-v6-c-page__sidebar"
|
|
1404
1444
|
id="page-sidebar"
|
|
1405
|
-
|
|
1445
|
+
>
|
|
1446
|
+
<div
|
|
1447
|
+
class="pf-v6-c-page__sidebar-main"
|
|
1448
|
+
/>
|
|
1449
|
+
</div>
|
|
1406
1450
|
<div
|
|
1407
1451
|
class="pf-v6-c-page__main-container"
|
|
1408
1452
|
>
|
|
@@ -1547,7 +1591,11 @@ exports[`Page Verify sticky top breadcrumb on all height breakpoints 1`] = `
|
|
|
1547
1591
|
aria-hidden="false"
|
|
1548
1592
|
class="pf-v6-c-page__sidebar"
|
|
1549
1593
|
id="page-sidebar"
|
|
1550
|
-
|
|
1594
|
+
>
|
|
1595
|
+
<div
|
|
1596
|
+
class="pf-v6-c-page__sidebar-main"
|
|
1597
|
+
/>
|
|
1598
|
+
</div>
|
|
1551
1599
|
<div
|
|
1552
1600
|
class="pf-v6-c-page__main-container"
|
|
1553
1601
|
>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
-
exports[`
|
|
3
|
+
exports[`Verify basic render 1`] = `
|
|
4
4
|
<DocumentFragment>
|
|
5
5
|
<div
|
|
6
6
|
class="pf-v6-c-page__main-group"
|
|
@@ -10,7 +10,7 @@ exports[`page group Verify basic render 1`] = `
|
|
|
10
10
|
</DocumentFragment>
|
|
11
11
|
`;
|
|
12
12
|
|
|
13
|
-
exports[`
|
|
13
|
+
exports[`Verify bottom shadow 1`] = `
|
|
14
14
|
<DocumentFragment>
|
|
15
15
|
<div
|
|
16
16
|
class="pf-v6-c-page__main-group pf-m-shadow-bottom"
|
|
@@ -20,7 +20,7 @@ exports[`page group Verify bottom shadow 1`] = `
|
|
|
20
20
|
</DocumentFragment>
|
|
21
21
|
`;
|
|
22
22
|
|
|
23
|
-
exports[`
|
|
23
|
+
exports[`Verify bottom sticky 1`] = `
|
|
24
24
|
<DocumentFragment>
|
|
25
25
|
<div
|
|
26
26
|
class="pf-v6-c-page__main-group pf-m-sticky-bottom"
|
|
@@ -30,7 +30,7 @@ exports[`page group Verify bottom sticky 1`] = `
|
|
|
30
30
|
</DocumentFragment>
|
|
31
31
|
`;
|
|
32
32
|
|
|
33
|
-
exports[`
|
|
33
|
+
exports[`Verify overflow scroll 1`] = `
|
|
34
34
|
<DocumentFragment>
|
|
35
35
|
<div
|
|
36
36
|
class="pf-v6-c-page__main-group pf-m-overflow-scroll"
|
|
@@ -42,7 +42,7 @@ exports[`page group Verify overflow scroll 1`] = `
|
|
|
42
42
|
</DocumentFragment>
|
|
43
43
|
`;
|
|
44
44
|
|
|
45
|
-
exports[`
|
|
45
|
+
exports[`Verify top shadow 1`] = `
|
|
46
46
|
<DocumentFragment>
|
|
47
47
|
<div
|
|
48
48
|
class="pf-v6-c-page__main-group pf-m-shadow-top"
|
|
@@ -52,7 +52,7 @@ exports[`page group Verify top shadow 1`] = `
|
|
|
52
52
|
</DocumentFragment>
|
|
53
53
|
`;
|
|
54
54
|
|
|
55
|
-
exports[`
|
|
55
|
+
exports[`Verify top sticky 1`] = `
|
|
56
56
|
<DocumentFragment>
|
|
57
57
|
<div
|
|
58
58
|
class="pf-v6-c-page__main-group pf-m-sticky-top"
|
|
@@ -20,7 +20,7 @@ A page will typically contain the following components:
|
|
|
20
20
|
|
|
21
21
|
The `<MastheadMain>` component includes the smaller area that typically contains the `<MastheadToggle>` and a `<MastheadLogo>`. `<MastheadContent>` represents the main portion of the masthead, and will typically contain a `<Toolbar>` or other menu-like components, like a `<Dropdown>`.
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
- Mastheads contain a `<MastheadMain>` component, which includes the `<MastheadToggle>`, a `<MastheadLogo>`, and the page's toolbar (via `<MastheadContent>`.) The `<MastheadToggle>` component contains a `<PageToggleButton>`, and the `<MastheadLogo>` component contains a `<MastheadBrand>`.
|
|
24
24
|
- 1 or more `<PageSidebarBody>` components inside `<PageSidebar>` for vertical navigation or other sidebar content
|
|
25
25
|
- 1 or more `<PageSection>` components
|
|
26
26
|
|
|
@@ -123,3 +123,11 @@ The content in this example is placed in a card to better illustrate how the sec
|
|
|
123
123
|
```ts file="./PageCenteredSection.tsx"
|
|
124
124
|
|
|
125
125
|
```
|
|
126
|
+
|
|
127
|
+
### Plain sections and groups
|
|
128
|
+
|
|
129
|
+
To remove the default background color from a page section or group, use the `isPlain` property on `<PageSection>` or `<PageGroup>` components.
|
|
130
|
+
|
|
131
|
+
```ts file="./PagePlainSections.tsx"
|
|
132
|
+
|
|
133
|
+
```
|